p_table <- function(tab_data, ...) {
  tab_data_2 <- deparse(substitute(tab_data))
  
  table_p <- do.call(CreateTableOne, 
                     list(data = as.name(tab_data_2), includeNA = TRUE, ...))
  table_p_out <- print(table_p,
                       showAllLevels = TRUE,
                       printToggle = FALSE)
  kable(table_p_out,
        align = "c")
}
uni_var <- function(test_var, data_imp) {
                
        cat("_________________________________________________")
        cat("\n")
        cat("   \n##", test_var)
        cat("\n")
        cat("_________________________________________________")
        cat("\n")
        
        f <- as.formula(paste("Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 0)",
                              as.name(test_var),
                              sep = " ~ " ))
        
        data_imp_2 <- deparse(substitute(data_imp))
        km_fit <- do.call("survfit", list(formula = f, data = as.name(data_imp_2)))
        print(km_fit)
        cat("\n")
        print(summary(km_fit, times = c(12, 24, 36, 48, 60, 120)))
        cat("\n")
        cat("\n")
        cat("\n")
        cat("   \n## Univariable Cox Proportional Hazard Model for: ", test_var)
        cat("\n")
        cat("\n")
        n_levels <- nlevels(data_imp[[test_var]])
        if(n_levels == 1){
                print("Only one level, no Cox model performed")
                cat("\n")
        } else {
                cox_fit <- do.call("coxph", list(formula = f, data = as.name(data_imp_2)))
                print(summary(cox_fit))
                cat("\n")
                
                do.call("ggforest",
                         list(model = cox_fit, data = as.name(data_imp_2)))
        }
        cat("\n")
        cat("\n")
        cat("\n")
        cat("   \n## Unadjusted Kaplan Meier Overall Survival Curve for: ", test_var)
        p <- do.call("ggsurvplot",
                     list(fit = km_fit, data = as.name(data_imp_2),
                          palette = "jco", censor = FALSE, legend = "right",
                          linetype = "strata", xlab = "Time (Months)"))
        print(p)
}
col.width <- c(37, 10, 1, 1, 3, 1, 2, 1, 2, 1, 1, 1, 1, 1, 1, 8, 2, 2, 2, 4, 4, 1, 4, 1, 1,
               1, 3, 2, 2, 8, 2, 5, 5, 5, 4, 5, 5, 5,4, 2, 1, 2, 1, 3, 1, 1, 1, 1, 1, 1, 3,
               3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 6, 8,
               8, 8, 2, 1, 1, 1, 1, 8, 1, 1, 8, 1, 1, 2, 2, 5, 2, 5, 3, 1, 3, 1, 8, 8, 2, 8,
               2, 8, 2, 2, 1, 8, 1, 1, 1, 1, 1, 8, 1, 2, 2, 2, 2, 2, 1, 1, 1, 2, 1, 3, 1, 1,
               1, 1, 1, 1, 1, 1, 1)
col.names.abr <- c("PUF_CASE_ID", "PUF_FACILITY_ID", "FACILITY_TYPE_CD", "FACILITY_LOCATION_CD",
                   "AGE", "SEX", "RACE", "SPANISH_HISPANIC_ORIGIN", "INSURANCE_STATUS",
                   "MED_INC_QUAR_00", "NO_HSD_QUAR_00", "UR_CD_03", "MED_INC_QUAR_12", "NO_HSD_QUAR_12",
                   "UR_CD_13", "CROWFLY", "CDCC_TOTAL_BEST", "SEQUENCE_NUMBER", "CLASS_OF_CASE",
                   "YEAR_OF_DIAGNOSIS", "PRIMARY_SITE", "LATERALITY", "HISTOLOGY", "BEHAVIOR", "GRADE",
                   "DIAGNOSTIC_CONFIRMATION", "TUMOR_SIZE", "REGIONAL_NODES_POSITIVE",
                   "REGIONAL_NODES_EXAMINED", "DX_STAGING_PROC_DAYS", "RX_SUMM_DXSTG_PROC", "TNM_CLIN_T",
                   "TNM_CLIN_N", "TNM_CLIN_M", "TNM_CLIN_STAGE_GROUP", "TNM_PATH_T", "TNM_PATH_N", "TNM_PATH_M",
                   "TNM_PATH_STAGE_GROUP", "TNM_EDITION_NUMBER", "ANALYTIC_STAGE_GROUP", "CS_METS_AT_DX",
                   "CS_METS_EVAL", "CS_EXTENSION", "CS_TUMOR_SIZEEXT_EVAL", "CS_METS_DX_BONE", "CS_METS_DX_BRAIN",
                   "CS_METS_DX_LIVER", "CS_METS_DX_LUNG", "LYMPH_VASCULAR_INVASION", "CS_SITESPECIFIC_FACTOR_1",
                   "CS_SITESPECIFIC_FACTOR_2", "CS_SITESPECIFIC_FACTOR_3", "CS_SITESPECIFIC_FACTOR_4",
                   "CS_SITESPECIFIC_FACTOR_5", "CS_SITESPECIFIC_FACTOR_6", "CS_SITESPECIFIC_FACTOR_7",
                   "CS_SITESPECIFIC_FACTOR_8", "CS_SITESPECIFIC_FACTOR_9", "CS_SITESPECIFIC_FACTOR_10",
                   "CS_SITESPECIFIC_FACTOR_11", "CS_SITESPECIFIC_FACTOR_12", "CS_SITESPECIFIC_FACTOR_13",
                   "CS_SITESPECIFIC_FACTOR_14", "CS_SITESPECIFIC_FACTOR_15", "CS_SITESPECIFIC_FACTOR_16",
                   "CS_SITESPECIFIC_FACTOR_17", "CS_SITESPECIFIC_FACTOR_18", "CS_SITESPECIFIC_FACTOR_19",
                   "CS_SITESPECIFIC_FACTOR_20", "CS_SITESPECIFIC_FACTOR_21", "CS_SITESPECIFIC_FACTOR_22",
                   "CS_SITESPECIFIC_FACTOR_23", "CS_SITESPECIFIC_FACTOR_24", "CS_SITESPECIFIC_FACTOR_25",
                   "CS_VERSION_LATEST", "DX_RX_STARTED_DAYS", "DX_SURG_STARTED_DAYS", "DX_DEFSURG_STARTED_DAYS",
                   "RX_SUMM_SURG_PRIM_SITE", "RX_HOSP_SURG_APPR_2010", "RX_SUMM_SURGICAL_MARGINS",
                   "RX_SUMM_SCOPE_REG_LN_SUR", "RX_SUMM_SURG_OTH_REGDIS", "SURG_DISCHARGE_DAYS", "READM_HOSP_30_DAYS",
                   "REASON_FOR_NO_SURGERY", "DX_RAD_STARTED_DAYS", "RX_SUMM_RADIATION", "RAD_LOCATION_OF_RX",
                   "RAD_TREAT_VOL", "RAD_REGIONAL_RX_MODALITY", "RAD_REGIONAL_DOSE_CGY", "RAD_BOOST_RX_MODALITY",
                   "RAD_BOOST_DOSE_CGY", "RAD_NUM_TREAT_VOL", "RX_SUMM_SURGRAD_SEQ", "RAD_ELAPSED_RX_DAYS",
                   "REASON_FOR_NO_RADIATION", "DX_SYSTEMIC_STARTED_DAYS", "DX_CHEMO_STARTED_DAYS", "RX_SUMM_CHEMO",
                   "DX_HORMONE_STARTED_DAYS", "RX_SUMM_HORMONE", "DX_IMMUNO_STARTED_DAYS", "RX_SUMM_IMMUNOTHERAPY",
                   "RX_SUMM_TRNSPLNT_ENDO", "RX_SUMM_SYSTEMIC_SUR_SEQ", "DX_OTHER_STARTED_DAYS", "RX_SUMM_OTHER",
                   "PALLIATIVE_CARE", "RX_SUMM_TREATMENT_STATUS", "PUF_30_DAY_MORT_CD", "PUF_90_DAY_MORT_CD",
                   "DX_LASTCONTACT_DEATH_MONTHS", "PUF_VITAL_STATUS", "RX_HOSP_SURG_PRIM_SITE", "RX_HOSP_CHEMO",
                   "RX_HOSP_IMMUNOTHERAPY", "RX_HOSP_HORMONE", "RX_HOSP_OTHER", "PUF_MULT_SOURCE", "REFERENCE_DATE_FLAG",
                   "RX_SUMM_SCOPE_REG_LN_2012", "RX_HOSP_DXSTG_PROC", "PALLIATIVE_CARE_HOSP", "TUMOR_SIZE_SUMMARY",
                   "METS_AT_DX_OTHER", "METS_AT_DX_DISTANT_LN", "METS_AT_DX_BONE", "METS_AT_DX_BRAIN",
                   "METS_AT_DX_LIVER", "METS_AT_DX_LUNG", "NO_HSD_QUAR_16", "MED_INC_QUAR_16", "MEDICAID_EXPN_CODE")
#Read in data for each subsite
lip <- read_fwf('NCDBPUF_Lip.3.2016.0.dat', 
                       fwf_widths(col.width, col_names = col.names.abr),
                       col_types = cols(.default = col_character()))
melanoma <- read_fwf('NCDBPUF_Melanoma.3.2016.0.dat', 
                       fwf_widths(col.width, col_names = col.names.abr),
                       col_types = cols(.default = col_character()))
                       
skin <- read_fwf('NCDBPUF_OtSkin.3.2016.0.dat', 
                       fwf_widths(col.width, col_names = col.names.abr),
                       col_types = cols(.default = col_character()))
hodgextr <- read_fwf('NCDBPUF_HodgExtr.3.2016.0.dat', 
                       fwf_widths(col.width, col_names = col.names.abr),
                       col_types = cols(.default = col_character()))
hodgndal <- read_fwf('NCDBPUF_HodgNdal.3.2016.0.dat', 
                       fwf_widths(col.width, col_names = col.names.abr),
                       col_types = cols(.default = col_character()))
NHLndal <- read_fwf('NCDBPUF_NHLNdal.3.2016.0.dat', 
                       fwf_widths(col.width, col_names = col.names.abr),
                       col_types = cols(.default = col_character()))
breast <-  read_fwf('NCDBPUF_Breast.3.2016.0.dat', 
                       fwf_widths(col.width, col_names = col.names.abr),
                       col_types = cols(.default = col_character()))
vulva <-  read_fwf('NCDBPUF_Vulva.3.2016.0.dat', 
                       fwf_widths(col.width, col_names = col.names.abr),
                       col_types = cols(.default = col_character()))
vagina <-  read_fwf('NCDBPUF_Vagina.3.2016.0.dat', 
                       fwf_widths(col.width, col_names = col.names.abr),
                       col_types = cols(.default = col_character()))
penis <-  read_fwf('NCDBPUF_Penis.3.2016.0.dat', 
                       fwf_widths(col.width, col_names = col.names.abr),
                       col_types = cols(.default = col_character()))
#Combine data for all subsites
dat <- bind_rows(lip, melanoma, skin, hodgextr, hodgndal, NHLndal, breast, 
                 vulva, vagina, penis)
rm(lip, melanoma, skin, hodgextr, hodgndal, NHLndal, breast, vulva, vagina, penis)
prim_site_text <- data_frame(PRIMARY_SITE = c(
#NHL sites
"C098",
"C099",
"C111",
"C142",
"C379",
"C422",
"C770",
"C771",
"C772",
"C773",
"C774",
 "C775",
"C778",
"C779"),
SITE_TEXT = c(
  "C09.8 Tonsil: Overlapping",
  "C09.9 = Tonsil NOS",
  "C11.1 Nasopharynx: Poster Wall", 
  "C14.2 Waldeyer Ring",
  "C37.9 Thymus",
  "C42.2 Spleen",
  "C77.0 Lymph Nodes: HeadFaceNeck",
  "C77.1 Intrathoracic Lymph Nodes",
  "C77.2 Intra-abdominal LymphNodes",
  "C77.3 Lymph Nodes of axilla or arm ",
  "C77.4 Lymph Nodes: Leg",
  "C77.5 Pelvic Lymph Nodes",
  "C77.8 Lymph Nodes: multiple region",
  "C77.9 Lymph Node NOS"))
dat <- merge(dat, prim_site_text, by = "PRIMARY_SITE", all.x = TRUE) 
 
rm(prim_site_text)
# convert numeric variables from character class to numeric class
num_vars <- c("AGE", "CROWFLY", "TUMOR_SIZE", "DX_STAGING_PROC_DAYS", "DX_RX_STARTED_DAYS", "DX_SURG_STARTED_DAYS",
              "DX_DEFSURG_STARTED_DAYS", "SURG_DISCHARGE_DAYS", "DX_RAD_STARTED_DAYS",  "RAD_REGIONAL_DOSE_CGY",
              "RAD_BOOST_DOSE_CGY", "RAD_ELAPSED_RX_DAYS", "DX_SYSTEMIC_STARTED_DAYS", "DX_CHEMO_STARTED_DAYS", 
              "DX_HORMONE_STARTED_DAYS", "DX_OTHER_STARTED_DAYS", "DX_LASTCONTACT_DEATH_MONTHS",
              "RAD_NUM_TREAT_VOL")
dat[num_vars] <- lapply(dat[num_vars], as.numeric)
# convert factor variables from character class to factor class
vars <- names(dat)
fact_vars <- vars[!(vars %in% num_vars)] # basically all of the non-numerics
dat[fact_vars] <- lapply(dat[fact_vars], as.character)
dat[fact_vars] <- lapply(dat[fact_vars], as.factor)
dat <- dat %>%
        mutate(FACILITY_TYPE_F = fct_recode(FACILITY_TYPE_CD,
                                            "Community Cancer Program" = "1",
                                            "Comprehensive Comm Ca Program" = "2",
                                            "Academic/Research Program" = "3",
                                            "Integrated Network Ca Program" = "4",
                                            "Other" = "9")) %>%
        mutate(FACILITY_LOCATION_F = fct_recode(FACILITY_LOCATION_CD,
                                            "New England" = "1",
                                            "Middle Atlantic" = "2",
                                            "South Atlantic" = "3",
                                            "East North Central" = "4",
                                            "East South Central" = "5",
                                            "West North Central" = "6",
                                            "West South Central" = "7",
                                            "Mountain" = "8",
                                            "Pacific" = "9",
                                            "out of US" = "0")) %>%
        mutate(FACILITY_GEOGRAPHY = fct_collapse(FACILITY_LOCATION_CD,
                                                 "Northeast" = c("1", "2"),
                                                 "South" = c("3", "7"),
                                                 "Midwest" = c("4", "5", "6"),
                                                 "West" = c("8", "9"))) %>%
        mutate(AGE_F = cut(AGE, c(0, 54, 64, 74, 100))) %>%
        mutate(AGE_40 = cut(AGE, c(0, 40, 100))) %>%
        mutate(SEX_F = fct_recode(SEX,
                                "Male" = "1",
                                "Female" = "2")) %>%
        mutate(RACE_F = fct_collapse(RACE,
                                "White" = c("01"),
                                "Black" = c("02"),
                                "Asian" = c("04", "05", "06", "07", "08", "10", "11", "12", "13", "14", "15",
                                            "16", "17", "20", "21", "22", "25", "26", "27", "28", "30", "31",
                                            "32", "96", "97"),
                                "Other/Unk" = c("03", "98", "99"))) %>%
        mutate(HISPANIC = fct_collapse(SPANISH_HISPANIC_ORIGIN,
                                       "Yes" = c("1", "2", "3", "4", "5", "6", "7", "8"),
                                       "No" = c("0"),
                                       "Unknown" = c("9"))) %>%
        mutate(INSURANCE_F = fct_recode(INSURANCE_STATUS,
                                         "None" = "0",
                                         "Private" = "1",
                                         "Medicaid" = "2",
                                         "Medicare" = "3",
                                         "Other Government" = "4",
                                         "Unknown" = "9")) %>%
        mutate(INSURANCE_F = fct_relevel(INSURANCE_F,
                                         "Private")) %>%
        mutate(INCOME_F = fct_recode(MED_INC_QUAR_12,
                                      "Less than $38,000" = "1",
                                      "$38,000 - $47,999" = "2",
                                      "$48,000 - $62,999" = "3",
                                      "$63,000 +" = "4")) %>%
        mutate(EDUCATION_F = fct_recode(NO_HSD_QUAR_12,
                                        "21% or more" = "1",
                                        "13 - 20.9%" = "2",
                                        "7 - 12.9%" = "3",
                                        "Less than 7%" = "4")) %>%
        mutate(U_R_F = fct_collapse(UR_CD_13,
                                    "Metro" = c("1", "2", "3"),
                                    "Urban" = c("4", "5", "6", "7"),
                                    "Rural" = c("8", "9"))) %>%
        mutate(CLASS_OF_CASE_F = fct_collapse(CLASS_OF_CASE,
                                              All_Part_Prim = c("10", "11", "12", "13",
                                                                "14", "20", "21", "22"),
                                              Other_Facility = c("00"))) %>%
        mutate(GRADE_F = fct_recode(GRADE,
                                  "Gr I: Well Diff" = "1",
                                  "Gr II: Mod Diff" = "2",
                                  "Gr III: Poor Diff" = "3",
                                  "Gr IV: Undiff/Anaplastic" = "4",
                                  "NA/Unkown" = "9")) %>%
        mutate(HISTOLOGY_F = fct_infreq(HISTOLOGY)) %>%
        mutate(HISTOLOGY_F = factor(HISTOLOGY_F)) %>%
        mutate(HISTOLOGY_F_LIM = fct_lump(HISTOLOGY_F, prop = 0.05)) %>%
        mutate(TNM_CLIN_T = fct_recode(TNM_CLIN_T,
                                       "N_A" = "88")) %>%
        mutate(TNM_CLIN_T = fct_relevel(TNM_CLIN_T,
                                        "1")) %>%
        mutate(TNM_CLIN_N = fct_recode(TNM_CLIN_N,
                                       "N_A" = "88")) %>%
        mutate(TNM_CLIN_M = fct_recode(TNM_CLIN_M,
                                       "N_A" = "88")) %>%
        mutate(TNM_PATH_T = fct_recode(TNM_PATH_T,
                                       "N_A" = "88")) %>%
        mutate(TNM_PATH_T = fct_relevel(TNM_PATH_T,
                                        "1")) %>%
        mutate(TNM_PATH_N = fct_recode(TNM_PATH_N,
                                       "N_A" = "88")) %>%
        mutate(TNM_PATH_M = fct_recode(TNM_PATH_M,
                                       "N_A" = "88")) %>%
        mutate(TNM_CLIN_STAGE_GROUP = fct_recode(TNM_CLIN_STAGE_GROUP,
                                       "N_A" = "88")) %>%
        mutate(TNM_PATH_STAGE_GROUP = fct_recode(TNM_PATH_STAGE_GROUP,
                                       "N_A" = "88")) %>%
        mutate(MARGINS = fct_recode(RX_SUMM_SURGICAL_MARGINS,
                                    "No Residual" = "0",
                                    "Residual, NOS" = "1",
                                    "Microscopic Resid" = "2",
                                    "Macroscopic Resid" = "3",
                                    "Not evaluable" = "7",
                                    "No surg" = "8",
                                    "Unknown" = "9")) %>%
        mutate(MARGINS_YN = fct_collapse(RX_SUMM_SURGICAL_MARGINS,
                                         "Yes" = c("1", "2", "3"),
                                         "No" = c("0"),
                                         "No surg/Unk/NA" = c("7", "8", "9"))) %>%
        mutate(READM_HOSP_30_DAYS_F = fct_recode(READM_HOSP_30_DAYS,
                                                 "No_Surg_or_No_Readmit" = "0",
                                                 "Unplan_Readmit_Same" = "1",
                                                 "Plan_Readmit_Same" = "2",
                                                 "PlanUnplan_Same" = "3",
                                                 "Unknown" = "4")) %>%
        mutate(RX_SUMM_RADIATION_F = fct_recode(RX_SUMM_RADIATION,
                                                "None" = "0",
                                                "Beam Radiation" = "1",
                                                "Radioactive Implants" = "2",
                                                "Radioisotopes" = "3",
                                                "Beam + Imp or Isotopes" = "4",
                                                "Radiation, NOS" = "5",
                                                "Unknown" = "9")) %>%
        mutate(PUF_30_DAY_MORT_CD_F = fct_recode(PUF_30_DAY_MORT_CD,
                                                 "Alive_30" = "0",
                                                 "Dead_30" = "1",
                                                 "Unknown" = "9")) %>%
        mutate(PUF_90_DAY_MORT_CD_F = fct_recode(PUF_90_DAY_MORT_CD,
                                                 "Alive_90" = "0",
                                                 "Dead_90" = "1",
                                                 "Unknown" = "9")) %>%
        mutate(LYMPH_VASCULAR_INVASION_F = fct_recode(LYMPH_VASCULAR_INVASION,
                                                      "Neg_LymphVasc_Inv" = "0",
                                                      "Pos_LumphVasc_Inv" = "1",
                                                      "N_A" = "8",
                                                      "Unknown" = "9")) %>%
        mutate(RX_HOSP_SURG_APPR_2010_F = fct_recode(RX_HOSP_SURG_APPR_2010,
                                                     "No_Surg" = "0",
                                                     "Robot_Assist" = "1",
                                                     "Robot_to_Open" = "2",
                                                     "Endo_Lap" = "3",
                                                     "Endo_Lap_to_Open" = "4",
                                                     "Open_Unknown" = "5",
                                                     "Unknown" = "9")) %>%
        mutate(All = "All") %>%
        mutate(All = factor(All)) %>%
        mutate(REASON_FOR_NO_SURGERY_F = fct_recode(REASON_FOR_NO_SURGERY,
                                                    "Surg performed" = "0",
                                                    "Surg not recommended" = "1",
                                                    "No surg due to pt factors" = "2",
                                                    "No surg, pt died" = "5",
                                                    "Surg rec, not done" = "6",
                                                    "Surg rec, pt refused" = "7",
                                                    "Surg rec, unk if done" = "8",
                                                    "Unknown" = "9")) %>%
        mutate(SURGERY_YN = ifelse(REASON_FOR_NO_SURGERY == "0",
                                   "Yes",
                                   ifelse(REASON_FOR_NO_SURGERY == "9",
                                          "Ukn",
                                          "No"))) %>%
        mutate(SURG_TF = case_when(SURGERY_YN == "Yes" ~ TRUE,
                             SURGERY_YN == "No" ~ FALSE,
                             TRUE ~ NA))  %>%
        mutate(REASON_FOR_NO_RADIATION_F = fct_recode(REASON_FOR_NO_RADIATION,
                                                    "Rad performed" = "0",
                                                    "Rad not recommended" = "1",
                                                    "No Rad due to pt factors" = "2",
                                                    "No Rad, pt died" = "5",
                                                    "Rad rec, not done" = "6",
                                                    "Rad rec, pt refused" = "7",
                                                    "Rad rec, unk if done" = "8",
                                                    "Unknown" = "9")) %>%
        mutate(RADIATION_YN = ifelse(REASON_FOR_NO_RADIATION == "0",
                                   "Yes",
                                   ifelse(REASON_FOR_NO_RADIATION == "9",
                                          NA,
                                          "No"))) %>%
        mutate(SURGRAD_SEQ_F = fct_recode(RX_SUMM_SURGRAD_SEQ,
                                                   "None or Surg or Rad" = "0",
                                                   "Rad before Surg" = "2",
                                                   "Surg before Rad" = "3",
                                                   "Rad before and after Surg" = "4",
                                                   "Intraop Rad" = "5",
                                                   "Intraop Rad plus other" = "6",
                                                   "Unknown" = "9")) %>%
        mutate(SURG_RAD_SEQ = ifelse(SURGERY_YN == "Yes" & RX_SUMM_SURGRAD_SEQ == "0",
                                     "Surg Alone",
                                     ifelse(RADIATION_YN == "Yes" & RX_SUMM_SURGRAD_SEQ == "0",
                                            "Rad Alone",
                                            ifelse(SURGERY_YN == "No" & RADIATION_YN == "No" & RX_SUMM_SURGRAD_SEQ == "0",
                                                   "No Treatment",
                                                   ifelse(RX_SUMM_SURGRAD_SEQ == "2",
                                                          "Rad then Surg",
                                                          ifelse(RX_SUMM_SURGRAD_SEQ == "3",
                                                                 "Surg then Rad",
                                                                 ifelse(RX_SUMM_SURGRAD_SEQ == "4",
                                                                        "Rad before and after Surg",
                                                                        "Other"))))))) %>%
        mutate(SURG_RAD_SEQ = fct_relevel(SURG_RAD_SEQ,
                                          "Surg Alone",
                                          "Surg then Rad",
                                          "Rad Alone")) %>%
        mutate(CHEMO_YN = fct_collapse(RX_SUMM_CHEMO,
                                       "No" = c("00", "82", "85", "86", "87"),
                                       "Yes" = c("01", "02", "03"),
                                       "Ukn" = c("88", "99"))) %>%
        mutate(SURG_RAD_SEQ_C = ifelse(SURGERY_YN == "Yes" & RX_SUMM_SURGRAD_SEQ == "0" & CHEMO_YN == "No",
                                     "Surg, No rad, No Chemo",
                                     ifelse(RADIATION_YN == "Yes" & RX_SUMM_SURGRAD_SEQ == "0" & CHEMO_YN == "No",
                                            "Rad, No Surg, No Chemo",
                                            ifelse(SURGERY_YN == "No" & RADIATION_YN == "No" & RX_SUMM_SURGRAD_SEQ == "0" & CHEMO_YN == "No",
                                                   "No Surg, No Rad, No Chemo",
                                                   ifelse(RX_SUMM_SURGRAD_SEQ == "2" & CHEMO_YN == "No",
                                                          "Rad then Surg, No Chemo",
                                                          ifelse(RX_SUMM_SURGRAD_SEQ == "3" & CHEMO_YN == "No",
                                                                 "Surg then Rad, No Chemo",
                                                                 ifelse(RX_SUMM_SURGRAD_SEQ == "4" & CHEMO_YN == "No",
                                                                        "Rad before and after Surg, No Chemo",
                                ifelse(SURGERY_YN == "Yes" & RX_SUMM_SURGRAD_SEQ == "0" & CHEMO_YN == "Yes",
                                       "Surg, No rad, Yes Chemo",
                                       ifelse(RADIATION_YN == "Yes" & RX_SUMM_SURGRAD_SEQ == "0" & CHEMO_YN == "Yes",
                                              "Rad, No Surg, Yes Chemo",
                                              ifelse(SURGERY_YN == "No" & RADIATION_YN == "No" & RX_SUMM_SURGRAD_SEQ == "0" & CHEMO_YN == "Yes",
                                                     "No Surg, No Rad, Yes Chemo",
                                                     ifelse(RX_SUMM_SURGRAD_SEQ == "2" & CHEMO_YN == "Yes",
                                                            "Rad then Surg, Yes Chemo",
                                                            ifelse(RX_SUMM_SURGRAD_SEQ == "3" & CHEMO_YN == "Yes",
                                                                   "Surg then Rad, Yes Chemo",
                                                                   ifelse(RX_SUMM_SURGRAD_SEQ == "4" & CHEMO_YN == "Yes",
                                                                          "Rad before and after Surg, Yes Chemo",
                                                                          "Other"))))))))))))) %>%
        mutate(SURG_RAD_SEQ_C = fct_infreq(SURG_RAD_SEQ_C)) %>%
        mutate(T_SIZE = as.numeric(TUMOR_SIZE)) %>%
        mutate(T_SIZE = ifelse(T_SIZE == 0,
                                "No Tumor",
                                ifelse(T_SIZE > 0 & T_SIZE < 10 | T_SIZE == 991,
                                       "< 1 cm",
                                       ifelse(T_SIZE >= 10 & T_SIZE < 20 | T_SIZE == 992,
                                              "1-2 cm",
                                              ifelse(T_SIZE >= 20 & T_SIZE < 30 | T_SIZE == 993,
                                                     "2-3 cm",
                                                     ifelse(T_SIZE >= 30 & T_SIZE < 40 | T_SIZE == 994,
                                                            "3-4 cm",
                                                            ifelse(T_SIZE >= 40 & T_SIZE < 50 | T_SIZE == 995,
                                                                   "4-5 cm",
                                                                   ifelse(T_SIZE >= 50 & T_SIZE < 60 | T_SIZE == 996,
                                                                          "5-6 cm",
                                                                          ifelse(T_SIZE >= 60 & T_SIZE <= 987 |
                                                                                         T_SIZE == 980 | T_SIZE == 989 |
                                                                                         T_SIZE == 997,
                                                                          ">6 cm",
                                                                          ifelse(T_SIZE == 988 | T_SIZE == 999,
                                                                                 "NA_unk",
                                                                                 "Microscopic focus")))))))))) %>%
        mutate(T_SIZE = factor(T_SIZE)) %>%
        mutate(T_SIZE = fct_relevel(T_SIZE,
                                     "No Tumor", "Microscopic focus", "< 1 cm", "1-2 cm", "2-3 cm", "3-4 cm",
                                       "4-5 cm", "5-6 cm", ">6 cm", "NA_unk")) %>%
        mutate(mets_at_dx = case_when(CS_METS_DX_LUNG == "1" ~ "Lung",
                                      CS_METS_DX_BONE == "1" ~ "Bone",
                                      CS_METS_DX_BRAIN == "1" ~ "Brain",
                                      CS_METS_DX_LIVER == "1" ~ "Liver",
                                      TRUE ~ "None/Other/Unk/NA")) %>%
        mutate(MEDICAID_EXPN_CODE = fct_recode(MEDICAID_EXPN_CODE,
                                               "Non-Expansion State" = "0",
                                               "Jan 2014 Expansion States" = "1",
                                               "Early Expansion States (2010-13)" = "2",
                                               "Late Expansion States (> Jan 2014)" = "3",
                                               "Suppressed for Ages 0 - 39" = "9"))  %>%
        mutate(EXPN_GROUP =  case_when(MEDICAID_EXPN_CODE  %in% c("Jan 2014 Expansion States") & 
                                         YEAR_OF_DIAGNOSIS %in% c("2014", "2015") ~ "Post-Expansion",
                                       
                                       MEDICAID_EXPN_CODE  %in% c("Jan 2014 Expansion States") & 
                                         YEAR_OF_DIAGNOSIS %in% 
                                          c("2004", "2005", "2006", "2007", "2008", 
                                            "2009", "2010", "2011", "2012", "2013") ~ "Pre-Expansion",
               
                                       MEDICAID_EXPN_CODE  %in% c("Early Expansion States (2010-13)") & 
                                         YEAR_OF_DIAGNOSIS %in% c("2010", "2011", "2012", "2013", "2014", "2015") ~ "Post-Expansion",
                                       
                                        MEDICAID_EXPN_CODE  %in% c("Early Expansion States (2010-13)") & 
                                         YEAR_OF_DIAGNOSIS %in% c("2004", "2005", "2006", "2007", "2008", "2009") ~ "Pre-Expansion",
                                       MEDICAID_EXPN_CODE %in% c("Non-Expansion State") ~ "Pre-Expansion",
                                       MEDICAID_EXPN_CODE %in% c("Late Expansion States (> Jan 2014)") ~ "Pre-Expansion",
                    
                                       MEDICAID_EXPN_CODE %in% c("Late Expansion States (> Jan 2014)") & 
                                        YEAR_OF_DIAGNOSIS %in% c("2014", "2015") ~ "Exclude",
                                       
                                       MEDICAID_EXPN_CODE == "Suppressed for Ages 0 - 39" ~ "Exclude")) %>%
  
  mutate(pre_2014 = YEAR_OF_DIAGNOSIS %in% c("2004", "2005", "2006", "2007", "2008", 
                                            "2009", "2010", "2011", "2012", "2013")) %>%
  
  mutate(mets_at_dx_F = ifelse(mets_at_dx == "None/Other/Unk/NA", FALSE, TRUE)) %>% 
  
  mutate(Tx_YN = ifelse(SURG_RAD_SEQ == "No Treatment" & CHEMO_YN == "No", FALSE, 
                        ifelse(CHEMO_YN == "Ukn", NA, 
                               TRUE)))
fact_vars_2 <- c("FACILITY_TYPE_F", "FACILITY_LOCATION_F", "AGE_F", "SEX_F", "RACE_F",
                 "HISPANIC", "INSURANCE_F", "INCOME_F", "EDUCATION_F", "U_R_F",
                 "CDCC_TOTAL_BEST", "CLASS_OF_CASE_F", "YEAR_OF_DIAGNOSIS", "PRIMARY_SITE", "HISTOLOGY",
                 "BEHAVIOR", "GRADE_F", "TNM_CLIN_T", "TNM_CLIN_N", "TNM_CLIN_M",
                 "TNM_CLIN_STAGE_GROUP", "TNM_PATH_T", "TNM_PATH_N", "TNM_PATH_M", "TNM_PATH_STAGE_GROUP",
                 "MARGINS", "READM_HOSP_30_DAYS_F", "RX_SUMM_RADIATION_F", "PUF_30_DAY_MORT_CD_F",
                 "PUF_90_DAY_MORT_CD_F", "LYMPH_VASCULAR_INVASION_F", "RX_HOSP_SURG_APPR_2010_F", "mets_at_dx")
dat <- dat %>%
        mutate_at(fact_vars_2, funs(factor(.)))

Extract Data of Interest

# Non-Hodgkin Lymphoma Sites
site_code <- c("C098", "C099", "C111", "C142", "C379", "C422","C770",
"C771","C772","C773","C774", "C775", "C778","C779")
#mycosis fungoides, Sezary syndrome, subcutaneous panniculitis-like T-cell lymphoma,
#cutaneous T-cell lymphoma, NOS, primary cutaneous CD30+T-cell lymphoma, 
#NK/T-cell lymphoma, primary cutaneous gamma-delta T-cell lymphoma, 
#and blastic NK cell lymphoma, respectively
histo_code <- c("9700", "9701", "9708", "9709", "9718", "9719", "9726", "9727")
behavior_code <- c("3")
data <- dat %>%
        filter(BEHAVIOR %in% behavior_code) %>%
        filter(PRIMARY_SITE %in% site_code) %>%
        filter(HISTOLOGY %in% histo_code) %>%
        #filter(AGE >= 18) %>%
        filter(is.na(PUF_VITAL_STATUS) == FALSE) %>%
        filter(is.na(DX_LASTCONTACT_DEATH_MONTHS) == FALSE)  %>%
        filter(SEQUENCE_NUMBER == "00") 
file_path <- c("/Users/beastatlife/Google Drive/Penn/Research/Barbieri/NCDB")
save(data,
      file = paste0(file_path, "/MF_data.Rda"))
#load("MF_data.Rda")

Data including skin tumors was obtained from the NCBD on October 7, 2019. Cases that were included in this analysis were those with:

  1. Site codes: C098, C099, C111, C142, C379, C422, C770, C771, C772, C773, C774, C775, C778, C779
  2. Histology codes: 9700, 9701, 9708, 9709, 9718, 9719, 9726, 9727
  3. Behavior codes: 3

Patients were excluded if they didn’t have values for either follow up or vital status.

Patients were excluded if they had surgery to a distant site using RX_SUMM_SURG_OTH_REGDIS. This was done to avoid confounding of different surgical procedures. We are only interested in surgery at the primary site. These distant site surgeries were being counted in the surgery/radiation sequence and thus to simplify analysis they were removed.

data %>%
        CreateTableOne(data = .,
                     vars = c("RX_SUMM_SURG_OTH_REGDIS"),
                     includeNA = TRUE) %>%
        print(.,
              showAllLevels = TRUE)
                             
                              level Overall    
  n                                 845        
  RX_SUMM_SURG_OTH_REGDIS (%) 0     772 (91.4) 
                              1      11 ( 1.3) 
                              2       5 ( 0.6) 
                              3       0 ( 0.0) 
                              4      16 ( 1.9) 
                              5       1 ( 0.1) 
                              9      40 ( 4.7) 
data <- data %>%
        filter(RX_SUMM_SURG_OTH_REGDIS == "0") 

Race was grouped as white, black, asian, other/unknown Stage was grouped into 0, I, II, III, IV, NA_Unknown, stage 0 was removed Whether surgery was performed was based on the REASON_FOR_NO_SURGERY variable. The SURGERY_YN variable was classified as ‘Yes’, ‘No’, or ‘Unknown’.

Whether radiation was performed was based on the REASON_FOR_NO_RADIATION variable. The RADIATION_YN variable was classified as ‘Yes’, ‘No’, or ‘Unknown’.

Table of variables for all cases:

p_table(data,
        vars = c("FACILITY_TYPE_F", "FACILITY_LOCATION_F", "FACILITY_GEOGRAPHY",  "AGE", "AGE_F", "AGE_40",
                 "SEX_F", "RACE_F", "HISPANIC", "INSURANCE_F", 
                 "INCOME_F", "EDUCATION_F", "U_R_F", "CROWFLY", "CDCC_TOTAL_BEST",
                 "SITE_TEXT", "HISTOLOGY_F_LIM", "HISTOLOGY_F", "BEHAVIOR", "GRADE_F",
                 "DX_STAGING_PROC_DAYS", "TNM_CLIN_T", "TNM_CLIN_N", "TNM_CLIN_M",
                 "TNM_CLIN_STAGE_GROUP", "TNM_PATH_T", "TNM_PATH_N", "TNM_PATH_M",
                 "TNM_PATH_STAGE_GROUP", "DX_RX_STARTED_DAYS", "DX_SURG_STARTED_DAYS",
                 "DX_DEFSURG_STARTED_DAYS", "MARGINS", "MARGINS_YN", "SURG_DISCHARGE_DAYS",
                 "READM_HOSP_30_DAYS_F", "RX_SUMM_RADIATION_F", "PUF_30_DAY_MORT_CD_F",
                 "PUF_90_DAY_MORT_CD_F", "DX_LASTCONTACT_DEATH_MONTHS", 
                 "LYMPH_VASCULAR_INVASION_F", "RX_HOSP_SURG_APPR_2010_F", "SURG_RAD_SEQ",
                 "SURG_RAD_SEQ_C", "SURGERY_YN", "RADIATION_YN", "CHEMO_YN", "mets_at_dx",
                 "MEDICAID_EXPN_CODE", "EXPN_GROUP", "SITE_TEXT"))
The data frame does not have: SITE_TEXT.1  Dropped

level Overall
n 772
FACILITY_TYPE_F (%) Community Cancer Program 22 ( 2.8)
Comprehensive Comm Ca Program 133 ( 17.2)
Academic/Research Program 230 ( 29.8)
Integrated Network Ca Program 47 ( 6.1)
NA 340 ( 44.0)
FACILITY_LOCATION_F (%) New England 18 ( 2.3)
Middle Atlantic 74 ( 9.6)
South Atlantic 93 ( 12.0)
East North Central 70 ( 9.1)
East South Central 22 ( 2.8)
West North Central 43 ( 5.6)
West South Central 39 ( 5.1)
Mountain 11 ( 1.4)
Pacific 62 ( 8.0)
NA 340 ( 44.0)
FACILITY_GEOGRAPHY (%) Northeast 92 ( 11.9)
South 132 ( 17.1)
Midwest 135 ( 17.5)
West 73 ( 9.5)
NA 340 ( 44.0)
AGE (mean (sd)) 43.14 (22.81)
AGE_F (%) (0,54] 510 ( 66.1)
(54,64] 96 ( 12.4)
(64,74] 94 ( 12.2)
(74,100] 72 ( 9.3)
AGE_40 (%) (0,40] 349 ( 45.2)
(40,100] 423 ( 54.8)
SEX_F (%) Male 516 ( 66.8)
Female 256 ( 33.2)
RACE_F (%) White 607 ( 78.6)
Black 106 ( 13.7)
Other/Unk 23 ( 3.0)
Asian 36 ( 4.7)
HISPANIC (%) No 601 ( 77.8)
Yes 125 ( 16.2)
Unknown 46 ( 6.0)
INSURANCE_F (%) Private 403 ( 52.2)
None 56 ( 7.3)
Medicaid 119 ( 15.4)
Medicare 161 ( 20.9)
Other Government 12 ( 1.6)
Unknown 21 ( 2.7)
INCOME_F (%) Less than $38,000 131 ( 17.0)
$38,000 - $47,999 165 ( 21.4)
$48,000 - $62,999 209 ( 27.1)
$63,000 + 258 ( 33.4)
NA 9 ( 1.2)
EDUCATION_F (%) 21% or more 146 ( 18.9)
13 - 20.9% 210 ( 27.2)
7 - 12.9% 223 ( 28.9)
Less than 7% 185 ( 24.0)
NA 8 ( 1.0)
U_R_F (%) Metro 656 ( 85.0)
Urban 79 ( 10.2)
Rural 10 ( 1.3)
NA 27 ( 3.5)
CROWFLY (mean (sd)) 50.04 (157.57)
CDCC_TOTAL_BEST (%) 0 657 ( 85.1)
1 83 ( 10.8)
2 21 ( 2.7)
3 11 ( 1.4)
SITE_TEXT (%) C09.8 Tonsil: Overlapping 1 ( 0.1)
C09.9 = Tonsil NOS 9 ( 1.2)
C11.1 Nasopharynx: Poster Wall 2 ( 0.3)
C14.2 Waldeyer Ring 4 ( 0.5)
C37.9 Thymus 4 ( 0.5)
C42.2 Spleen 4 ( 0.5)
C77.0 Lymph Nodes: HeadFaceNeck 75 ( 9.7)
C77.1 Intrathoracic Lymph Nodes 97 ( 12.6)
C77.2 Intra-abdominal LymphNodes 27 ( 3.5)
C77.3 Lymph Nodes of axilla or arm 26 ( 3.4)
C77.4 Lymph Nodes: Leg 20 ( 2.6)
C77.5 Pelvic Lymph Nodes 6 ( 0.8)
C77.8 Lymph Nodes: multiple region 226 ( 29.3)
C77.9 Lymph Node NOS 271 ( 35.1)
HISTOLOGY_F_LIM (%) 8500 0 ( 0.0)
8720 0 ( 0.0)
8520 0 ( 0.0)
Other 772 (100.0)
HISTOLOGY_F (%) 8500 0 ( 0.0)
8720 0 ( 0.0)
8520 0 ( 0.0)
8523 0 ( 0.0)
9680 0 ( 0.0)
8743 0 ( 0.0)
8522 0 ( 0.0)
8070 0 ( 0.0)
8742 0 ( 0.0)
8201 0 ( 0.0)
8501 0 ( 0.0)
8721 0 ( 0.0)
8480 0 ( 0.0)
9663 0 ( 0.0)
8230 0 ( 0.0)
9690 0 ( 0.0)
9591 0 ( 0.0)
8010 0 ( 0.0)
9691 0 ( 0.0)
9650 0 ( 0.0)
9695 0 ( 0.0)
9673 0 ( 0.0)
8140 0 ( 0.0)
9699 0 ( 0.0)
8247 0 ( 0.0)
8507 0 ( 0.0)
9698 0 ( 0.0)
8211 0 ( 0.0)
9823 0 ( 0.0)
8071 0 ( 0.0)
8503 0 ( 0.0)
9670 0 ( 0.0)
9590 0 ( 0.0)
8050 0 ( 0.0)
8530 0 ( 0.0)
8575 0 ( 0.0)
9702 0 ( 0.0)
8524 0 ( 0.0)
9652 0 ( 0.0)
9687 0 ( 0.0)
8000 0 ( 0.0)
8832 0 ( 0.0)
8745 0 ( 0.0)
8744 0 ( 0.0)
8772 0 ( 0.0)
9714 0 ( 0.0)
8401 0 ( 0.0)
8510 0 ( 0.0)
9689 0 ( 0.0)
9659 0 ( 0.0)
9705 0 ( 0.0)
8542 0 ( 0.0)
9671 0 ( 0.0)
9020 0 ( 0.0)
8521 0 ( 0.0)
8410 0 ( 0.0)
8504 0 ( 0.0)
8543 0 ( 0.0)
8541 0 ( 0.0)
9651 0 ( 0.0)
9120 0 ( 0.0)
8200 0 ( 0.0)
8540 0 ( 0.0)
8090 0 ( 0.0)
9596 0 ( 0.0)
8730 0 ( 0.0)
8723 0 ( 0.0)
9837 0 ( 0.0)
8255 0 ( 0.0)
8072 0 ( 0.0)
8051 0 ( 0.0)
8830 0 ( 0.0)
8890 0 ( 0.0)
8771 0 ( 0.0)
9665 0 ( 0.0)
8770 0 ( 0.0)
8083 0 ( 0.0)
8761 0 ( 0.0)
8409 0 ( 0.0)
9729 0 ( 0.0)
9684 0 ( 0.0)
9653 0 ( 0.0)
8246 0 ( 0.0)
8081 0 ( 0.0)
9667 0 ( 0.0)
8390 0 ( 0.0)
8022 0 ( 0.0)
8560 0 ( 0.0)
8407 0 ( 0.0)
8413 0 ( 0.0)
8980 0 ( 0.0)
8076 0 ( 0.0)
8260 0 ( 0.0)
9727 473 ( 61.3)
8490 0 ( 0.0)
8097 0 ( 0.0)
8740 0 ( 0.0)
8032 0 ( 0.0)
8800 0 ( 0.0)
8481 0 ( 0.0)
8402 0 ( 0.0)
9735 0 ( 0.0)
9679 0 ( 0.0)
9811 0 ( 0.0)
8802 0 ( 0.0)
8041 0 ( 0.0)
9675 0 ( 0.0)
8310 0 ( 0.0)
8513 0 ( 0.0)
8052 0 ( 0.0)
8033 0 ( 0.0)
8400 0 ( 0.0)
9716 0 ( 0.0)
8343 0 ( 0.0)
8801 0 ( 0.0)
9827 0 ( 0.0)
8574 0 ( 0.0)
8323 0 ( 0.0)
8408 0 ( 0.0)
8380 0 ( 0.0)
8074 0 ( 0.0)
9719 203 ( 26.3)
8046 0 ( 0.0)
8502 0 ( 0.0)
8430 0 ( 0.0)
9664 0 ( 0.0)
8094 0 ( 0.0)
9728 0 ( 0.0)
8572 0 ( 0.0)
8746 0 ( 0.0)
8982 0 ( 0.0)
8833 0 ( 0.0)
8570 0 ( 0.0)
8573 0 ( 0.0)
8123 0 ( 0.0)
8403 0 ( 0.0)
9678 0 ( 0.0)
8525 0 ( 0.0)
8722 0 ( 0.0)
8020 0 ( 0.0)
9738 0 ( 0.0)
8804 0 ( 0.0)
8021 0 ( 0.0)
8141 0 ( 0.0)
8550 0 ( 0.0)
8811 0 ( 0.0)
8315 0 ( 0.0)
8810 0 ( 0.0)
8075 0 ( 0.0)
8940 0 ( 0.0)
8012 0 ( 0.0)
8805 0 ( 0.0)
8143 0 ( 0.0)
8780 0 ( 0.0)
9717 0 ( 0.0)
8910 0 ( 0.0)
9180 0 ( 0.0)
8935 0 ( 0.0)
8147 0 ( 0.0)
8013 0 ( 0.0)
8460 0 ( 0.0)
8091 0 ( 0.0)
8120 0 ( 0.0)
8092 0 ( 0.0)
8240 0 ( 0.0)
8512 0 ( 0.0)
8854 0 ( 0.0)
9655 0 ( 0.0)
8073 0 ( 0.0)
8850 0 ( 0.0)
8571 0 ( 0.0)
9709 32 ( 4.1)
8891 0 ( 0.0)
9580 0 ( 0.0)
8035 0 ( 0.0)
8453 0 ( 0.0)
8950 0 ( 0.0)
8562 0 ( 0.0)
8441 0 ( 0.0)
9737 0 ( 0.0)
8852 0 ( 0.0)
9708 30 ( 3.9)
8851 0 ( 0.0)
9540 0 ( 0.0)
8082 0 ( 0.0)
8420 0 ( 0.0)
8249 0 ( 0.0)
8741 0 ( 0.0)
8004 0 ( 0.0)
9724 0 ( 0.0)
8077 0 ( 0.0)
9718 15 ( 1.9)
8920 0 ( 0.0)
8983 0 ( 0.0)
9260 0 ( 0.0)
9700 9 ( 1.2)
8001 0 ( 0.0)
8508 0 ( 0.0)
9133 0 ( 0.0)
8080 0 ( 0.0)
8900 0 ( 0.0)
9044 0 ( 0.0)
8098 0 ( 0.0)
8084 0 ( 0.0)
8341 0 ( 0.0)
9071 0 ( 0.0)
8005 0 ( 0.0)
8144 0 ( 0.0)
8210 0 ( 0.0)
8896 0 ( 0.0)
8933 0 ( 0.0)
8963 0 ( 0.0)
8154 0 ( 0.0)
9220 0 ( 0.0)
8711 0 ( 0.0)
8894 0 ( 0.0)
8045 0 ( 0.0)
9654 0 ( 0.0)
8320 0 ( 0.0)
8514 0 ( 0.0)
8815 0 ( 0.0)
9473 0 ( 0.0)
8440 0 ( 0.0)
8803 0 ( 0.0)
8840 0 ( 0.0)
9130 0 ( 0.0)
9150 0 ( 0.0)
9701 6 ( 0.8)
8031 0 ( 0.0)
8130 0 ( 0.0)
8314 0 ( 0.0)
8858 0 ( 0.0)
9812 0 ( 0.0)
8124 0 ( 0.0)
8263 0 ( 0.0)
8470 0 ( 0.0)
9040 0 ( 0.0)
9560 0 ( 0.0)
8243 0 ( 0.0)
8450 0 ( 0.0)
8030 0 ( 0.0)
8078 0 ( 0.0)
8190 0 ( 0.0)
8251 0 ( 0.0)
8406 0 ( 0.0)
9100 0 ( 0.0)
8290 0 ( 0.0)
8461 0 ( 0.0)
8774 0 ( 0.0)
8901 0 ( 0.0)
8936 0 ( 0.0)
8093 0 ( 0.0)
8102 0 ( 0.0)
8148 0 ( 0.0)
8825 0 ( 0.0)
8931 0 ( 0.0)
8951 0 ( 0.0)
9364 0 ( 0.0)
9597 0 ( 0.0)
9662 0 ( 0.0)
8261 0 ( 0.0)
8384 0 ( 0.0)
8773 0 ( 0.0)
9041 0 ( 0.0)
9110 0 ( 0.0)
8011 0 ( 0.0)
8110 0 ( 0.0)
8344 0 ( 0.0)
8452 0 ( 0.0)
8806 0 ( 0.0)
9170 0 ( 0.0)
9231 0 ( 0.0)
9726 4 ( 0.5)
9814 0 ( 0.0)
9816 0 ( 0.0)
9817 0 ( 0.0)
8014 0 ( 0.0)
8095 0 ( 0.0)
8340 0 ( 0.0)
8482 0 ( 0.0)
8726 0 ( 0.0)
8835 0 ( 0.0)
8855 0 ( 0.0)
8902 0 ( 0.0)
8912 0 ( 0.0)
8930 0 ( 0.0)
9181 0 ( 0.0)
9813 0 ( 0.0)
9815 0 ( 0.0)
8015 0 ( 0.0)
8042 0 ( 0.0)
8053 0 ( 0.0)
8170 0 ( 0.0)
8252 0 ( 0.0)
8253 0 ( 0.0)
8262 0 ( 0.0)
8620 0 ( 0.0)
8710 0 ( 0.0)
8760 0 ( 0.0)
8836 0 ( 0.0)
8895 0 ( 0.0)
9043 0 ( 0.0)
9182 0 ( 0.0)
9240 0 ( 0.0)
9561 0 ( 0.0)
9581 0 ( 0.0)
9661 0 ( 0.0)
9818 0 ( 0.0)
8003 0 ( 0.0)
8100 0 ( 0.0)
8121 0 ( 0.0)
8131 0 ( 0.0)
8145 0 ( 0.0)
8150 0 ( 0.0)
8231 0 ( 0.0)
8245 0 ( 0.0)
8270 0 ( 0.0)
8312 0 ( 0.0)
8313 0 ( 0.0)
8319 0 ( 0.0)
8332 0 ( 0.0)
8347 0 ( 0.0)
8350 0 ( 0.0)
8471 0 ( 0.0)
8576 0 ( 0.0)
8583 0 ( 0.0)
8700 0 ( 0.0)
8750 0 ( 0.0)
8823 0 ( 0.0)
8831 0 ( 0.0)
8853 0 ( 0.0)
8941 0 ( 0.0)
8990 0 ( 0.0)
9000 0 ( 0.0)
9061 0 ( 0.0)
9064 0 ( 0.0)
9080 0 ( 0.0)
9085 0 ( 0.0)
9102 0 ( 0.0)
9105 0 ( 0.0)
9183 0 ( 0.0)
9186 0 ( 0.0)
9251 0 ( 0.0)
9370 0 ( 0.0)
9371 0 ( 0.0)
9451 0 ( 0.0)
9530 0 ( 0.0)
BEHAVIOR (%) 2 0 ( 0.0)
3 772 (100.0)
GRADE_F (%) Gr I: Well Diff 0 ( 0.0)
Gr II: Mod Diff 0 ( 0.0)
Gr III: Poor Diff 2 ( 0.3)
Gr IV: Undiff/Anaplastic 1 ( 0.1)
5 352 ( 45.6)
6 119 ( 15.4)
7 4 ( 0.5)
8 150 ( 19.4)
NA/Unkown 144 ( 18.7)
DX_STAGING_PROC_DAYS (mean (sd)) 3.86 (35.51)
TNM_CLIN_T (%) N_A 740 ( 95.9)
c0 0 ( 0.0)
c1 0 ( 0.0)
c1A 0 ( 0.0)
c1B 0 ( 0.0)
c1C 0 ( 0.0)
c1MI 0 ( 0.0)
c2 1 ( 0.1)
c2A 0 ( 0.0)
c2B 0 ( 0.0)
c2C 0 ( 0.0)
c3 0 ( 0.0)
c3A 0 ( 0.0)
c3B 0 ( 0.0)
c4 0 ( 0.0)
c4A 0 ( 0.0)
c4B 0 ( 0.0)
c4C 0 ( 0.0)
c4D 0 ( 0.0)
cX 9 ( 1.2)
pA 0 ( 0.0)
pIS 0 ( 0.0)
NA 22 ( 2.8)
TNM_CLIN_N (%) N_A 740 ( 95.9)
c0 1 ( 0.1)
c1 0 ( 0.0)
c1A 0 ( 0.0)
c1B 0 ( 0.0)
c2 0 ( 0.0)
c2A 0 ( 0.0)
c2B 0 ( 0.0)
c2C 0 ( 0.0)
c3 0 ( 0.0)
c3A 0 ( 0.0)
c3B 0 ( 0.0)
c3C 0 ( 0.0)
cX 9 ( 1.2)
NA 22 ( 2.8)
TNM_CLIN_M (%) N_A 740 ( 95.9)
c0 10 ( 1.3)
c0I+ 0 ( 0.0)
c1 0 ( 0.0)
c1A 0 ( 0.0)
c1B 0 ( 0.0)
c1C 0 ( 0.0)
NA 22 ( 2.8)
TNM_CLIN_STAGE_GROUP (%) 0 0 ( 0.0)
1 47 ( 6.1)
1A 38 ( 4.9)
1B 16 ( 2.1)
1C 0 ( 0.0)
2 56 ( 7.3)
2A 27 ( 3.5)
2B 18 ( 2.3)
2C 0 ( 0.0)
3 33 ( 4.3)
3A 29 ( 3.8)
3B 22 ( 2.8)
3C 0 ( 0.0)
4 158 ( 20.5)
4A 84 ( 10.9)
4B 84 ( 10.9)
4C 0 ( 0.0)
N_A 7 ( 0.9)
99 153 ( 19.8)
TNM_PATH_T (%) N_A 733 ( 94.9)
p0 0 ( 0.0)
p1 0 ( 0.0)
p1A 0 ( 0.0)
p1B 0 ( 0.0)
p1C 0 ( 0.0)
p1MI 0 ( 0.0)
p2 1 ( 0.1)
p2A 0 ( 0.0)
p2B 0 ( 0.0)
p3 0 ( 0.0)
p3A 0 ( 0.0)
p3B 0 ( 0.0)
p4 0 ( 0.0)
p4A 0 ( 0.0)
p4B 0 ( 0.0)
p4C 0 ( 0.0)
p4D 0 ( 0.0)
pA 0 ( 0.0)
pIS 0 ( 0.0)
pX 9 ( 1.2)
NA 29 ( 3.8)
TNM_PATH_N (%) N_A 733 ( 94.9)
p0 0 ( 0.0)
p0I- 0 ( 0.0)
p0I+ 0 ( 0.0)
p0M- 0 ( 0.0)
p0M+ 0 ( 0.0)
p1 0 ( 0.0)
p1A 0 ( 0.0)
p1B 0 ( 0.0)
p1C 0 ( 0.0)
p1MI 0 ( 0.0)
p2 0 ( 0.0)
p2A 0 ( 0.0)
p2B 0 ( 0.0)
p2C 0 ( 0.0)
p3 0 ( 0.0)
p3A 0 ( 0.0)
p3B 0 ( 0.0)
p3C 0 ( 0.0)
pX 10 ( 1.3)
NA 29 ( 3.8)
TNM_PATH_M (%) N_A 718 ( 93.0)
p1 0 ( 0.0)
p1A 0 ( 0.0)
p1B 0 ( 0.0)
p1C 0 ( 0.0)
pX 10 ( 1.3)
NA 44 ( 5.7)
TNM_PATH_STAGE_GROUP (%) 0 0 ( 0.0)
1 29 ( 3.8)
1A 16 ( 2.1)
1B 6 ( 0.8)
1C 0 ( 0.0)
2 27 ( 3.5)
2A 6 ( 0.8)
2B 7 ( 0.9)
2C 0 ( 0.0)
3 13 ( 1.7)
3A 6 ( 0.8)
3B 4 ( 0.5)
3C 0 ( 0.0)
4 75 ( 9.7)
4A 26 ( 3.4)
4B 32 ( 4.1)
4C 0 ( 0.0)
N_A 7 ( 0.9)
99 474 ( 61.4)
NA 44 ( 5.7)
DX_RX_STARTED_DAYS (mean (sd)) 20.44 (34.48)
DX_SURG_STARTED_DAYS (mean (sd)) 3.80 (14.20)
DX_DEFSURG_STARTED_DAYS (mean (sd)) 4.09 (14.33)
MARGINS (%) No Residual 2 ( 0.3)
Residual, NOS 1 ( 0.1)
Microscopic Resid 0 ( 0.0)
Macroscopic Resid 2 ( 0.3)
Not evaluable 4 ( 0.5)
No surg 456 ( 59.1)
Unknown 307 ( 39.8)
MARGINS_YN (%) No 2 ( 0.3)
Yes 3 ( 0.4)
No surg/Unk/NA 767 ( 99.4)
SURG_DISCHARGE_DAYS (mean (sd)) 6.35 (12.09)
READM_HOSP_30_DAYS_F (%) No_Surg_or_No_Readmit 732 ( 94.8)
Unplan_Readmit_Same 8 ( 1.0)
Plan_Readmit_Same 3 ( 0.4)
PlanUnplan_Same 1 ( 0.1)
9 28 ( 3.6)
RX_SUMM_RADIATION_F (%) None 624 ( 80.8)
Beam Radiation 142 ( 18.4)
Radioactive Implants 0 ( 0.0)
Radioisotopes 0 ( 0.0)
Beam + Imp or Isotopes 0 ( 0.0)
Radiation, NOS 1 ( 0.1)
Unknown 5 ( 0.6)
PUF_30_DAY_MORT_CD_F (%) Alive_30 91 ( 11.8)
Dead_30 10 ( 1.3)
Unknown 3 ( 0.4)
NA 668 ( 86.5)
PUF_90_DAY_MORT_CD_F (%) Alive_90 81 ( 10.5)
Dead_90 20 ( 2.6)
Unknown 3 ( 0.4)
NA 668 ( 86.5)
DX_LASTCONTACT_DEATH_MONTHS (mean (sd)) 39.19 (43.36)
LYMPH_VASCULAR_INVASION_F (%) Neg_LymphVasc_Inv 0 ( 0.0)
Pos_LumphVasc_Inv 0 ( 0.0)
N_A 316 ( 40.9)
Unknown 0 ( 0.0)
NA 456 ( 59.1)
RX_HOSP_SURG_APPR_2010_F (%) No_Surg 101 ( 13.1)
Robot_Assist 0 ( 0.0)
Robot_to_Open 0 ( 0.0)
Endo_Lap 2 ( 0.3)
Endo_Lap_to_Open 0 ( 0.0)
Open_Unknown 12 ( 1.6)
Unknown 201 ( 26.0)
NA 456 ( 59.1)
SURG_RAD_SEQ (%) Surg Alone 87 ( 11.3)
Surg then Rad 20 ( 2.6)
Rad Alone 95 ( 12.3)
No Treatment 514 ( 66.6)
Other 56 ( 7.3)
Rad before and after Surg 0 ( 0.0)
Rad then Surg 0 ( 0.0)
SURG_RAD_SEQ_C (%) Surg, No rad, No Chemo 26 ( 3.4)
Surg then Rad, No Chemo 7 ( 0.9)
Surg then Rad, Yes Chemo 12 ( 1.6)
Surg, No rad, Yes Chemo 59 ( 7.6)
No Surg, No Rad, Yes Chemo 412 ( 53.4)
No Surg, No Rad, No Chemo 90 ( 11.7)
Other 73 ( 9.5)
Rad, No Surg, Yes Chemo 77 ( 10.0)
Rad, No Surg, No Chemo 16 ( 2.1)
Rad then Surg, Yes Chemo 0 ( 0.0)
Rad then Surg, No Chemo 0 ( 0.0)
Rad before and after Surg, Yes Chemo 0 ( 0.0)
Rad before and after Surg, No Chemo 0 ( 0.0)
SURGERY_YN (%) No 639 ( 82.8)
Ukn 25 ( 3.2)
Yes 108 ( 14.0)
RADIATION_YN (%) No 620 ( 80.3)
Yes 143 ( 18.5)
NA 9 ( 1.2)
CHEMO_YN (%) No 151 ( 19.6)
Yes 601 ( 77.8)
Ukn 20 ( 2.6)
mets_at_dx (%) Bone 0 ( 0.0)
Brain 0 ( 0.0)
Liver 0 ( 0.0)
Lung 0 ( 0.0)
None/Other/Unk/NA 772 (100.0)
MEDICAID_EXPN_CODE (%) Non-Expansion State 148 ( 19.2)
Jan 2014 Expansion States 150 ( 19.4)
Early Expansion States (2010-13) 87 ( 11.3)
Late Expansion States (> Jan 2014) 47 ( 6.1)
Suppressed for Ages 0 - 39 340 ( 44.0)
EXPN_GROUP (%) Exclude 340 ( 44.0)
Post-Expansion 60 ( 7.8)
Pre-Expansion 372 ( 48.2)
SITE_TEXT (%) C09.8 Tonsil: Overlapping 1 ( 0.1)
C09.9 = Tonsil NOS 9 ( 1.2)
C11.1 Nasopharynx: Poster Wall 2 ( 0.3)
C14.2 Waldeyer Ring 4 ( 0.5)
C37.9 Thymus 4 ( 0.5)
C42.2 Spleen 4 ( 0.5)
C77.0 Lymph Nodes: HeadFaceNeck 75 ( 9.7)
C77.1 Intrathoracic Lymph Nodes 97 ( 12.6)
C77.2 Intra-abdominal LymphNodes 27 ( 3.5)
C77.3 Lymph Nodes of axilla or arm 26 ( 3.4)
C77.4 Lymph Nodes: Leg 20 ( 2.6)
C77.5 Pelvic Lymph Nodes 6 ( 0.8)
C77.8 Lymph Nodes: multiple region 226 ( 29.3)
C77.9 Lymph Node NOS 271 ( 35.1)

p_table(no_Excludes,
        vars = c("FACILITY_TYPE_F", "FACILITY_LOCATION_F", "FACILITY_GEOGRAPHY",  "AGE", "AGE_F", "AGE_40",
                 "SEX_F", "RACE_F", "HISPANIC", "INSURANCE_F", 
                 "INCOME_F", "EDUCATION_F", "U_R_F", "CROWFLY", "CDCC_TOTAL_BEST",
                 "SITE_TEXT", "HISTOLOGY_F_LIM", "HISTOLOGY_F", "BEHAVIOR", "GRADE_F",
                 "DX_STAGING_PROC_DAYS", "TNM_CLIN_T", "TNM_CLIN_N", "TNM_CLIN_M",
                 "TNM_CLIN_STAGE_GROUP", "TNM_PATH_T", "TNM_PATH_N", "TNM_PATH_M",
                 "TNM_PATH_STAGE_GROUP", "DX_RX_STARTED_DAYS", "DX_SURG_STARTED_DAYS",
                 "DX_DEFSURG_STARTED_DAYS", "MARGINS", "MARGINS_YN", "SURG_DISCHARGE_DAYS",
                 "READM_HOSP_30_DAYS_F", "RX_SUMM_RADIATION_F", "PUF_30_DAY_MORT_CD_F",
                 "PUF_90_DAY_MORT_CD_F", "DX_LASTCONTACT_DEATH_MONTHS", 
                 "LYMPH_VASCULAR_INVASION_F", "RX_HOSP_SURG_APPR_2010_F", "SURG_RAD_SEQ",
                 "SURG_RAD_SEQ_C", "T_SIZE", "SURGERY_YN", "RADIATION_YN", "CHEMO_YN", "mets_at_dx",
                 "MEDICAID_EXPN_CODE","SITE_TEXT"), 
        strata = "EXPN_GROUP")
The data frame does not have: SITE_TEXT.1  Dropped

level Post-Expansion Pre-Expansion p test
n 144 562
FACILITY_TYPE_F (%) Community Cancer Program 2 ( 1.4) 11 ( 2.0) <0.001
Comprehensive Comm Ca Program 39 ( 27.1) 211 ( 37.5)
Academic/Research Program 90 ( 62.5) 231 ( 41.1)
Integrated Network Ca Program 13 ( 9.0) 109 ( 19.4)
FACILITY_LOCATION_F (%) New England 18 ( 12.5) 18 ( 3.2) <0.001
Middle Atlantic 31 ( 21.5) 94 ( 16.7)
South Atlantic 7 ( 4.9) 118 ( 21.0)
East North Central 14 ( 9.7) 112 ( 19.9)
East South Central 4 ( 2.8) 40 ( 7.1)
West North Central 24 ( 16.7) 54 ( 9.6)
West South Central 0 ( 0.0) 46 ( 8.2)
Mountain 2 ( 1.4) 37 ( 6.6)
Pacific 44 ( 30.6) 43 ( 7.7)
FACILITY_GEOGRAPHY (%) Northeast 49 ( 34.0) 112 ( 19.9) <0.001
South 7 ( 4.9) 164 ( 29.2)
Midwest 42 ( 29.2) 206 ( 36.7)
West 46 ( 31.9) 80 ( 14.2)
AGE (mean (sd)) 70.54 (12.26) 70.72 (11.57) 0.869
AGE_F (%) (0,54] 14 ( 9.7) 55 ( 9.8) 0.802
(54,64] 31 ( 21.5) 115 ( 20.5)
(64,74] 48 ( 33.3) 169 ( 30.1)
(74,100] 51 ( 35.4) 223 ( 39.7)
AGE_40 (%) (0,40] 0 ( 0.0) 2 ( 0.4) 1.000
(40,100] 144 (100.0) 560 ( 99.6)
SEX_F (%) Male 29 ( 20.1) 104 ( 18.5) 0.743
Female 115 ( 79.9) 458 ( 81.5)
RACE_F (%) White 127 ( 88.2) 508 ( 90.4) 0.360
Black 4 ( 2.8) 12 ( 2.1)
Other/Unk 2 ( 1.4) 16 ( 2.8)
Asian 11 ( 7.6) 26 ( 4.6)
HISPANIC (%) No 138 ( 95.8) 511 ( 90.9) 0.096
Yes 4 ( 2.8) 20 ( 3.6)
Unknown 2 ( 1.4) 31 ( 5.5)
INSURANCE_F (%) Private 52 ( 36.1) 187 ( 33.3) 0.900
None 2 ( 1.4) 9 ( 1.6)
Medicaid 4 ( 2.8) 12 ( 2.1)
Medicare 85 ( 59.0) 352 ( 62.6)
Other Government 1 ( 0.7) 2 ( 0.4)
INCOME_F (%) Less than $38,000 11 ( 7.6) 71 ( 12.6) <0.001
$38,000 - $47,999 22 ( 15.3) 145 ( 25.8)
$48,000 - $62,999 32 ( 22.2) 149 ( 26.5)
$63,000 + 78 ( 54.2) 195 ( 34.7)
NA 1 ( 0.7) 2 ( 0.4)
EDUCATION_F (%) 21% or more 21 ( 14.6) 69 ( 12.3) 0.656
13 - 20.9% 28 ( 19.4) 120 ( 21.4)
7 - 12.9% 48 ( 33.3) 215 ( 38.3)
Less than 7% 46 ( 31.9) 156 ( 27.8)
NA 1 ( 0.7) 2 ( 0.4)
U_R_F (%) Metro 121 ( 84.0) 471 ( 83.8) 0.049
Urban 13 ( 9.0) 67 ( 11.9)
Rural 2 ( 1.4) 14 ( 2.5)
NA 8 ( 5.6) 10 ( 1.8)
CROWFLY (mean (sd)) 31.80 (96.50) 32.75 (91.19) 0.912
CDCC_TOTAL_BEST (%) 0 112 ( 77.8) 445 ( 79.2) 0.968
1 26 ( 18.1) 92 ( 16.4)
2 4 ( 2.8) 16 ( 2.8)
3 2 ( 1.4) 9 ( 1.6)
SITE_TEXT (%) C44.2 External ear 0 ( 0.0) 1 ( 0.2) 0.634
C44.3 Skin of ear and unspecified parts of face 1 ( 0.7) 0 ( 0.0)
C44.4 Skin of scalp and neck 1 ( 0.7) 1 ( 0.2)
C44.5 Skin of trunk 29 ( 20.1) 106 ( 18.9)
C44.6 Skin of upper limb and shoulder 2 ( 1.4) 3 ( 0.5)
C44.7 Skin of lower limb and hip 2 ( 1.4) 6 ( 1.1)
C44.8 Overlapping lesion of skin 1 ( 0.7) 5 ( 0.9)
C44.9 Skin, NOS 2 ( 1.4) 7 ( 1.2)
C50.0 Nipple 0 ( 0.0) 1 ( 0.2)
C51.0 Labium majus 12 ( 8.3) 42 ( 7.5)
C51.1 Labium minus 2 ( 1.4) 8 ( 1.4)
C51.2 Clitoris 0 ( 0.0) 1 ( 0.2)
C51.8 Overlapping lesion of vulva 3 ( 2.1) 21 ( 3.7)
C51.9 Vulva, NOS 84 ( 58.3) 348 ( 61.9)
C60.8 Overlapping lesion of penis 1 ( 0.7) 0 ( 0.0)
C60.9 Penis 4 ( 2.8) 12 ( 2.1)
HISTOLOGY_F_LIM (%) Other 144 (100.0) 562 (100.0) NA
HISTOLOGY_F (%) 8542 144 (100.0) 562 (100.0) NA
BEHAVIOR (%) 3 144 (100.0) 562 (100.0) NA
GRADE_F (%) Gr I: Well Diff 5 ( 3.5) 21 ( 3.7) 0.885
Gr II: Mod Diff 5 ( 3.5) 13 ( 2.3)
Gr III: Poor Diff 3 ( 2.1) 11 ( 2.0)
NA/Unkown 131 ( 91.0) 517 ( 92.0)
DX_STAGING_PROC_DAYS (mean (sd)) 1.36 (8.20) 1.54 (13.80) 0.890
TNM_CLIN_T (%) c0 0 ( 0.0) 2 ( 0.4) 0.048
c1 18 ( 12.5) 63 ( 11.2)
c1A 23 ( 16.0) 74 ( 13.2)
c1B 32 ( 22.2) 67 ( 11.9)
c2 19 ( 13.2) 75 ( 13.3)
c3 0 ( 0.0) 9 ( 1.6)
c4 0 ( 0.0) 1 ( 0.2)
cX 45 ( 31.2) 244 ( 43.4)
pIS 5 ( 3.5) 16 ( 2.8)
NA 2 ( 1.4) 11 ( 2.0)
TNM_CLIN_N (%) c0 126 ( 87.5) 406 ( 72.2) 0.001
c1 0 ( 0.0) 1 ( 0.2)
c2C 1 ( 0.7) 0 ( 0.0)
cX 17 ( 11.8) 153 ( 27.2)
NA 0 ( 0.0) 2 ( 0.4)
TNM_CLIN_M (%) c0 144 (100.0) 562 (100.0) NA
TNM_CLIN_STAGE_GROUP (%) 0 5 ( 3.5) 32 ( 5.7) 0.116
1 23 ( 16.0) 90 ( 16.0)
1A 17 ( 11.8) 57 ( 10.1)
1B 29 ( 20.1) 60 ( 10.7)
2 19 ( 13.2) 75 ( 13.3)
3 0 ( 0.0) 5 ( 0.9)
4 1 ( 0.7) 1 ( 0.2)
4A 0 ( 0.0) 1 ( 0.2)
4B 0 ( 0.0) 1 ( 0.2)
99 50 ( 34.7) 240 ( 42.7)
TNM_PATH_T (%) p0 0 ( 0.0) 4 ( 0.7) <0.001
p1 14 ( 9.7) 37 ( 6.6)
p1A 23 ( 16.0) 75 ( 13.3)
p1B 33 ( 22.9) 72 ( 12.8)
p2 12 ( 8.3) 52 ( 9.3)
p3 0 ( 0.0) 5 ( 0.9)
pIS 2 ( 1.4) 15 ( 2.7)
pX 29 ( 20.1) 259 ( 46.1)
NA 31 ( 21.5) 43 ( 7.7)
TNM_PATH_N (%) p0 30 ( 20.8) 118 ( 21.0) <0.001
p1 0 ( 0.0) 3 ( 0.5)
p1B 1 ( 0.7) 0 ( 0.0)
p2C 0 ( 0.0) 1 ( 0.2)
pX 70 ( 48.6) 377 ( 67.1)
NA 43 ( 29.9) 63 ( 11.2)
TNM_PATH_M (%) p1 0 ( 0.0) 1 ( 0.2) <0.001
pX 0 ( 0.0) 255 ( 45.4)
NA 144 (100.0) 306 ( 54.4)
TNM_PATH_STAGE_GROUP (%) 0 2 ( 1.4) 29 ( 5.2) <0.001
1 12 ( 8.3) 46 ( 8.2)
1A 16 ( 11.1) 48 ( 8.5)
1B 22 ( 15.3) 37 ( 6.6)
2 8 ( 5.6) 42 ( 7.5)
3 0 ( 0.0) 8 ( 1.4)
3A 1 ( 0.7) 0 ( 0.0)
4A 0 ( 0.0) 1 ( 0.2)
4B 0 ( 0.0) 1 ( 0.2)
99 65 ( 45.1) 325 ( 57.8)
NA 18 ( 12.5) 25 ( 4.4)
DX_RX_STARTED_DAYS (mean (sd)) 49.87 (39.28) 46.72 (169.07) 0.830
DX_SURG_STARTED_DAYS (mean (sd)) 50.34 (40.61) 45.44 (174.02) 0.763
DX_DEFSURG_STARTED_DAYS (mean (sd)) 64.22 (81.18) 56.07 (191.74) 0.654
MARGINS (%) No Residual 59 ( 41.0) 248 ( 44.1) 0.096
Residual, NOS 10 ( 6.9) 67 ( 11.9)
Microscopic Resid 39 ( 27.1) 152 ( 27.0)
Macroscopic Resid 2 ( 1.4) 7 ( 1.2)
Not evaluable 4 ( 2.8) 4 ( 0.7)
No surg 26 ( 18.1) 66 ( 11.7)
Unknown 4 ( 2.8) 18 ( 3.2)
MARGINS_YN (%) No 59 ( 41.0) 248 ( 44.1) 0.077
Yes 51 ( 35.4) 226 ( 40.2)
No surg/Unk/NA 34 ( 23.6) 88 ( 15.7)
SURG_DISCHARGE_DAYS (mean (sd)) 1.57 (4.00) 1.77 (6.61) 0.756
READM_HOSP_30_DAYS_F (%) No_Surg_or_No_Readmit 137 ( 95.1) 529 ( 94.1) 0.349
Unplan_Readmit_Same 2 ( 1.4) 18 ( 3.2)
Plan_Readmit_Same 4 ( 2.8) 6 ( 1.1)
PlanUnplan_Same 0 ( 0.0) 1 ( 0.2)
9 1 ( 0.7) 8 ( 1.4)
RX_SUMM_RADIATION_F (%) None 138 ( 95.8) 528 ( 94.0) 0.149
Beam Radiation 4 ( 2.8) 27 ( 4.8)
Radioactive Implants 1 ( 0.7) 0 ( 0.0)
Unknown 1 ( 0.7) 7 ( 1.2)
PUF_30_DAY_MORT_CD_F (%) Alive_30 111 ( 77.1) 484 ( 86.1) 0.015
Dead_30 1 ( 0.7) 3 ( 0.5)
Unknown 6 ( 4.2) 6 ( 1.1)
NA 26 ( 18.1) 69 ( 12.3)
PUF_90_DAY_MORT_CD_F (%) Alive_90 110 ( 76.4) 476 ( 84.7) 0.093
Dead_90 1 ( 0.7) 4 ( 0.7)
Unknown 7 ( 4.9) 13 ( 2.3)
NA 26 ( 18.1) 69 ( 12.3)
DX_LASTCONTACT_DEATH_MONTHS (mean (sd)) 30.92 (21.03) 60.22 (38.34) <0.001
LYMPH_VASCULAR_INVASION_F (%) Neg_LymphVasc_Inv 44 ( 30.6) 128 ( 22.8) <0.001
Pos_LumphVasc_Inv 4 ( 2.8) 9 ( 1.6)
N_A 1 ( 0.7) 0 ( 0.0)
Unknown 95 ( 66.0) 170 ( 30.2)
NA 0 ( 0.0) 255 ( 45.4)
RX_HOSP_SURG_APPR_2010_F (%) No_Surg 26 ( 18.1) 34 ( 6.0) <0.001
Robot_Assist 0 ( 0.0) 1 ( 0.2)
Endo_Lap 3 ( 2.1) 11 ( 2.0)
Endo_Lap_to_Open 0 ( 0.0) 1 ( 0.2)
Open_Unknown 115 ( 79.9) 260 ( 46.3)
NA 0 ( 0.0) 255 ( 45.4)
SURG_RAD_SEQ (%) Surg Alone 115 ( 79.9) 485 ( 86.3) 0.013
Surg then Rad 2 ( 1.4) 4 ( 0.7)
Rad Alone 3 ( 2.1) 23 ( 4.1)
No Treatment 23 ( 16.0) 41 ( 7.3)
Other 1 ( 0.7) 9 ( 1.6)
SURG_RAD_SEQ_C (%) Surg, No rad, No Chemo 112 ( 77.8) 471 ( 83.8) 0.060
Surg then Rad, No Chemo 2 ( 1.4) 4 ( 0.7)
Surg, No rad, Yes Chemo 1 ( 0.7) 4 ( 0.7)
No Surg, No Rad, Yes Chemo 1 ( 0.7) 0 ( 0.0)
No Surg, No Rad, No Chemo 21 ( 14.6) 41 ( 7.3)
Other 4 ( 2.8) 19 ( 3.4)
Rad, No Surg, Yes Chemo 0 ( 0.0) 2 ( 0.4)
Rad, No Surg, No Chemo 3 ( 2.1) 21 ( 3.7)
T_SIZE (%) Microscopic focus 3 ( 2.1) 9 ( 1.6) 0.098
< 1 cm 12 ( 8.3) 52 ( 9.3)
1-2 cm 5 ( 3.5) 48 ( 8.5)
2-3 cm 14 ( 9.7) 39 ( 6.9)
3-4 cm 11 ( 7.6) 57 ( 10.1)
4-5 cm 16 ( 11.1) 28 ( 5.0)
5-6 cm 7 ( 4.9) 28 ( 5.0)
>6 cm 20 ( 13.9) 69 ( 12.3)
NA_unk 56 ( 38.9) 232 ( 41.3)
SURGERY_YN (%) No 26 ( 18.1) 64 ( 11.4) 0.072
Ukn 0 ( 0.0) 3 ( 0.5)
Yes 118 ( 81.9) 495 ( 88.1)
RADIATION_YN (%) No 138 ( 95.8) 528 ( 94.0) 0.671
Yes 5 ( 3.5) 27 ( 4.8)
NA 1 ( 0.7) 7 ( 1.2)
CHEMO_YN (%) No 139 ( 96.5) 542 ( 96.4) 0.912
Yes 2 ( 1.4) 6 ( 1.1)
Ukn 3 ( 2.1) 14 ( 2.5)
mets_at_dx (%) None/Other/Unk/NA 144 (100.0) 562 (100.0) NA
MEDICAID_EXPN_CODE (%) Non-Expansion State 0 ( 0.0) 244 ( 43.4) <0.001
Jan 2014 Expansion States 68 ( 47.2) 172 ( 30.6)
Early Expansion States (2010-13) 76 ( 52.8) 44 ( 7.8)
Late Expansion States (> Jan 2014) 0 ( 0.0) 102 ( 18.1)
SITE_TEXT (%) C44.2 External ear 0 ( 0.0) 1 ( 0.2) 0.634
C44.3 Skin of ear and unspecified parts of face 1 ( 0.7) 0 ( 0.0)
C44.4 Skin of scalp and neck 1 ( 0.7) 1 ( 0.2)
C44.5 Skin of trunk 29 ( 20.1) 106 ( 18.9)
C44.6 Skin of upper limb and shoulder 2 ( 1.4) 3 ( 0.5)
C44.7 Skin of lower limb and hip 2 ( 1.4) 6 ( 1.1)
C44.8 Overlapping lesion of skin 1 ( 0.7) 5 ( 0.9)
C44.9 Skin, NOS 2 ( 1.4) 7 ( 1.2)
C50.0 Nipple 0 ( 0.0) 1 ( 0.2)
C51.0 Labium majus 12 ( 8.3) 42 ( 7.5)
C51.1 Labium minus 2 ( 1.4) 8 ( 1.4)
C51.2 Clitoris 0 ( 0.0) 1 ( 0.2)
C51.8 Overlapping lesion of vulva 3 ( 2.1) 21 ( 3.7)
C51.9 Vulva, NOS 84 ( 58.3) 348 ( 61.9)
C60.8 Overlapping lesion of penis 1 ( 0.7) 0 ( 0.0)
C60.9 Penis 4 ( 2.8) 12 ( 2.1)

p_table(data,
        vars = c("YEAR_OF_DIAGNOSIS"),
        strata = c("MEDICAID_EXPN_CODE"))
level Non-Expansion State Jan 2014 Expansion States Early Expansion States (2010-13) Late Expansion States (> Jan 2014) Suppressed for Ages 0 - 39 p test
n 148 150 87 47 340
YEAR_OF_DIAGNOSIS (%) 2004 22 (14.9) 14 ( 9.3) 9 (10.3) 8 (17.0) 43 (12.6) NaN
2005 14 ( 9.5) 10 ( 6.7) 8 ( 9.2) 5 (10.6) 43 (12.6)
2006 16 (10.8) 15 (10.0) 11 (12.6) 4 ( 8.5) 33 ( 9.7)
2007 10 ( 6.8) 11 ( 7.3) 9 (10.3) 4 ( 8.5) 24 ( 7.1)
2008 16 (10.8) 10 ( 6.7) 9 (10.3) 6 (12.8) 26 ( 7.6)
2009 12 ( 8.1) 15 (10.0) 10 (11.5) 3 ( 6.4) 36 (10.6)
2010 8 ( 5.4) 10 ( 6.7) 8 ( 9.2) 2 ( 4.3) 24 ( 7.1)
2011 11 ( 7.4) 11 ( 7.3) 3 ( 3.4) 3 ( 6.4) 26 ( 7.6)
2012 12 ( 8.1) 10 ( 6.7) 3 ( 3.4) 3 ( 6.4) 29 ( 8.5)
2013 11 ( 7.4) 15 (10.0) 6 ( 6.9) 3 ( 6.4) 23 ( 6.8)
2014 10 ( 6.8) 17 (11.3) 7 ( 8.0) 4 ( 8.5) 23 ( 6.8)
2015 6 ( 4.1) 12 ( 8.0) 4 ( 4.6) 2 ( 4.3) 10 ( 2.9)
2016 0 ( 0.0) 0 ( 0.0) 0 ( 0.0) 0 ( 0.0) 0 ( 0.0)
preExpMedicare  <- nrow(data %>% filter(EXPN_GROUP == "Pre-Expansion" & INSURANCE_F == "Medicare"))
postExpMedicare <- nrow(data %>% filter(EXPN_GROUP == "Post-Expansion" & INSURANCE_F == "Medicare"))
# p = 0.25 when comparing change in proportion of patients with Medicare before and after ACA expansion
prop.test(c(preExpMedicare, postExpMedicare), 
          c(nrow(data %>% filter(EXPN_GROUP == "Pre-Expansion")), nrow(data %>% filter(EXPN_GROUP == "Post-Expansion"))))

    2-sample test for equality of proportions with continuity correction

data:  c(preExpMedicare, postExpMedicare) out of c(nrow(data %>% filter(EXPN_GROUP == "Pre-Expansion")), nrow(data %>% c(preExpMedicare, postExpMedicare) out of     filter(EXPN_GROUP == "Post-Expansion")))
X-squared = 1.1067, df = 1, p-value = 0.2928
alternative hypothesis: two.sided
95 percent confidence interval:
 -0.05415601  0.21329579
sample estimates:
   prop 1    prop 2 
0.3629032 0.2833333 
preExpNoInsurance <- nrow(data %>% filter(EXPN_GROUP == "Pre-Expansion") %>% 
                            filter(INSURANCE_F == "None"))
postExpNoInsurance <- nrow(data %>% filter(EXPN_GROUP == "Post-Expansion") %>% 
                             filter(INSURANCE_F == "None"))
# Significant decrease in the overall proportion of patients without insurance after ACA expansion 
prop.test(c(preExpNoInsurance, postExpNoInsurance), 
          c(nrow(data %>% filter(EXPN_GROUP == "Pre-Expansion")), nrow(data %>% filter(EXPN_GROUP == "Post-Expansion"))))
Chi-squared approximation may be incorrect

    2-sample test for equality of proportions with continuity correction

data:  c(preExpNoInsurance, postExpNoInsurance) out of c(nrow(data %>% filter(EXPN_GROUP == "Pre-Expansion")), nrow(data %>% c(preExpNoInsurance, postExpNoInsurance) out of     filter(EXPN_GROUP == "Post-Expansion")))
X-squared = 1.4465e-30, df = 1, p-value = 1
alternative hypothesis: two.sided
95 percent confidence interval:
 -0.05992657  0.07282980
sample estimates:
    prop 1     prop 2 
0.05645161 0.05000000 
p_table(no_Excludes, strata = "EXPN_GROUP", vars = "DX_RX_STARTED_DAYS")

level Post-Expansion Pre-Expansion p test
n 144 562
DX_RX_STARTED_DAYS (mean (sd)) 49.87 (39.28) 46.72 (169.07) 0.830

data <- data %>% mutate(Insured = INSURANCE_F != "Unknown")

Kaplan Meier Analysis

All

uni_var(test_var = "All", data_imp = data)
_________________________________________________
   
## All
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ All, data = data)

      n  events  median 0.95LCL 0.95UCL 
  772.0   417.0    27.7    24.1    38.5 

Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ All, data = data)

 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    467     253    0.660  0.0174        0.626        0.695
   24    356      85    0.536  0.0186        0.501        0.574
   36    280      42    0.471  0.0189        0.435        0.509
   48    236      12    0.450  0.0190        0.414        0.489
   60    210       5    0.440  0.0191        0.404        0.479
  120     63      19    0.388  0.0205        0.349        0.430



   
## Univariable Cox Proportional Hazard Model for:  All

[1] "Only one level, no Cox model performed"




   
## Unadjusted Kaplan Meier Overall Survival Curve for:  All

Facility Type

uni_var(test_var = "FACILITY_TYPE_F", data_imp = data)
_________________________________________________
   
## FACILITY_TYPE_F
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ FACILITY_TYPE_F, data = data)

   340 observations deleted due to missingness 
                                                n events median 0.95LCL 0.95UCL
FACILITY_TYPE_F=Community Cancer Program       22     14  18.37    4.50      NA
FACILITY_TYPE_F=Comprehensive Comm Ca Program 133     91  12.29    7.95    18.3
FACILITY_TYPE_F=Academic/Research Program     230    163  15.44   12.42    21.1
FACILITY_TYPE_F=Integrated Network Ca Program  47     36   8.94    4.63    21.5

Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ FACILITY_TYPE_F, data = data)

340 observations deleted due to missingness 
                FACILITY_TYPE_F=Community Cancer Program 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     10       9    0.528   0.115        0.345        0.807
   24      7       2    0.410   0.115        0.237        0.712
   36      4       3    0.235   0.101        0.101        0.546
   48      4       0    0.235   0.101        0.101        0.546
   60      3       0    0.235   0.101        0.101        0.546
  120      1       0    0.235   0.101        0.101        0.546

                FACILITY_TYPE_F=Comprehensive Comm Ca Program 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     58      64    0.500  0.0444        0.420        0.595
   24     40      17    0.351  0.0435        0.275        0.448
   36     30       5    0.304  0.0425        0.231        0.400
   48     28       1    0.294  0.0423        0.221        0.389
   60     27       0    0.294  0.0423        0.221        0.389
  120      7       3    0.256  0.0422        0.185        0.354

                FACILITY_TYPE_F=Academic/Research Program 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    123      94    0.580  0.0332        0.518        0.649
   24     82      35    0.411  0.0336        0.350        0.482
   36     59      16    0.329  0.0326        0.271        0.399
   48     41       8    0.282  0.0319        0.226        0.352
   60     36       2    0.268  0.0319        0.212        0.338
  120     10       8    0.185  0.0337        0.130        0.265

                FACILITY_TYPE_F=Integrated Network Ca Program 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     17      25    0.438  0.0749       0.3135        0.613
   24     10       6    0.279  0.0706       0.1701        0.458
   36      8       2    0.223  0.0666       0.1245        0.401
   48      7       0    0.223  0.0666       0.1245        0.401
   60      6       1    0.191  0.0643       0.0991        0.370




   
## Univariable Cox Proportional Hazard Model for:  FACILITY_TYPE_F

Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ FACILITY_TYPE_F, data = data)

  n= 432, number of events= 304 
   (340 observations deleted due to missingness)

                                                 coef exp(coef) se(coef)      z Pr(>|z|)
FACILITY_TYPE_FComprehensive Comm Ca Program -0.03307   0.96747  0.28722 -0.115    0.908
FACILITY_TYPE_FAcademic/Research Program     -0.07515   0.92760  0.27858 -0.270    0.787
FACILITY_TYPE_FIntegrated Network Ca Program  0.29227   1.33947  0.31525  0.927    0.354

                                             exp(coef) exp(-coef) lower .95 upper .95
FACILITY_TYPE_FComprehensive Comm Ca Program    0.9675     1.0336    0.5510     1.699
FACILITY_TYPE_FAcademic/Research Program        0.9276     1.0780    0.5373     1.601
FACILITY_TYPE_FIntegrated Network Ca Program    1.3395     0.7466    0.7221     2.485

Concordance= 0.532  (se = 0.016 )
Rsquare= 0.008   (max possible= 1 )
Likelihood ratio test= 3.69  on 3 df,   p=0.2975
Wald test            = 4.01  on 3 df,   p=0.2608
Score (logrank) test = 4.05  on 3 df,   p=0.2565
Removed 1 rows containing missing values (geom_errorbar).



   
## Unadjusted Kaplan Meier Overall Survival Curve for:  FACILITY_TYPE_F

Facility Location

uni_var(test_var = "FACILITY_LOCATION_F", data_imp = data)
_________________________________________________
   
## FACILITY_LOCATION_F
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ FACILITY_LOCATION_F, data = data)

   340 observations deleted due to missingness 
                                        n events median 0.95LCL 0.95UCL
FACILITY_LOCATION_F=New England        18     11   27.5    5.03      NA
FACILITY_LOCATION_F=Middle Atlantic    74     54   12.1    9.40    20.7
FACILITY_LOCATION_F=South Atlantic     93     68   14.7    8.74    22.4
FACILITY_LOCATION_F=East North Central 70     45   19.3    8.34    68.3
FACILITY_LOCATION_F=East South Central 22     18   12.6    6.14    38.9
FACILITY_LOCATION_F=West North Central 43     31   10.4    5.39    24.2
FACILITY_LOCATION_F=West South Central 39     26   12.2    8.57    51.3
FACILITY_LOCATION_F=Mountain           11      4     NA    5.65      NA
FACILITY_LOCATION_F=Pacific            62     47   15.0    9.79    26.6

Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ FACILITY_LOCATION_F, data = data)

340 observations deleted due to missingness 
                FACILITY_LOCATION_F=New England 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     10       7    0.611   0.115        0.423        0.883
   24      9       1    0.550   0.119        0.360        0.839
   36      4       3    0.326   0.124        0.155        0.685
   48      3       0    0.326   0.124        0.155        0.685
   60      3       0    0.326   0.124        0.155        0.685

                FACILITY_LOCATION_F=Middle Atlantic 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     37      36    0.505  0.0587        0.402        0.634
   24     23      12    0.334  0.0559        0.240        0.464
   36     17       3    0.290  0.0540        0.202        0.418
   48     15       1    0.273  0.0534        0.186        0.401
   60     13       0    0.273  0.0534        0.186        0.401
  120      5       2    0.229  0.0532        0.146        0.361

                FACILITY_LOCATION_F=South Atlantic 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     42      40    0.545  0.0534       0.4497        0.660
   24     25      15    0.344  0.0533       0.2541        0.466
   36     19       5    0.274  0.0509       0.1905        0.394
   48     14       2    0.244  0.0496       0.1635        0.363
   60     13       1    0.226  0.0490       0.1480        0.346
  120      3       5    0.127  0.0440       0.0641        0.250

                FACILITY_LOCATION_F=East North Central 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     37      27    0.598  0.0600        0.491        0.728
   24     25       9    0.452  0.0621        0.345        0.591
   36     19       4    0.378  0.0619        0.275        0.521
   48     15       1    0.356  0.0621        0.253        0.501
   60     15       0    0.356  0.0621        0.253        0.501
  120      3       3    0.237  0.0740        0.129        0.437

                FACILITY_LOCATION_F=East South Central 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     11      11    0.500  0.1066       0.3292        0.759
   24      8       3    0.364  0.1026       0.2092        0.632
   36      7       1    0.318  0.0993       0.1726        0.587
   48      5       2    0.227  0.0893       0.1052        0.491
   60      5       0    0.227  0.0893       0.1052        0.491
  120      1       1    0.182  0.0822       0.0749        0.441

                FACILITY_LOCATION_F=West North Central 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     17      22    0.466  0.0790        0.335        0.650
   24     12       5    0.329  0.0759        0.209        0.517
   36     10       2    0.274  0.0725        0.163        0.460
   48      8       1    0.247  0.0702        0.141        0.431
   60      7       1    0.216  0.0679        0.117        0.400
  120      2       0    0.216  0.0679        0.117        0.400

                FACILITY_LOCATION_F=West South Central 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     15      17    0.516  0.0861       0.3719        0.715
   24     11       4    0.378  0.0863       0.2418        0.592
   36      8       2    0.306  0.0837       0.1786        0.523
   48      7       0    0.306  0.0837       0.1786        0.523
   60      6       1    0.262  0.0824       0.1414        0.485
  120      1       2    0.146  0.0796       0.0498        0.425

                FACILITY_LOCATION_F=Mountain 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12      5       4    0.606   0.154        0.368        0.998
   24      4       0    0.606   0.154        0.368        0.998
   36      3       0    0.606   0.154        0.368        0.998
   48      2       0    0.606   0.154        0.368        0.998
   60      2       0    0.606   0.154        0.368        0.998

                FACILITY_LOCATION_F=Pacific 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     34      28    0.548  0.0632        0.438        0.687
   24     22      11    0.366  0.0616        0.263        0.509
   36     14       6    0.263  0.0569        0.172        0.402
   48     11       2    0.222  0.0549        0.137        0.361
   60      8       0    0.222  0.0549        0.137        0.361
  120      3       0    0.222  0.0549        0.137        0.361




   
## Univariable Cox Proportional Hazard Model for:  FACILITY_LOCATION_F

Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ FACILITY_LOCATION_F, data = data)

  n= 432, number of events= 304 
   (340 observations deleted due to missingness)

                                         coef exp(coef) se(coef)      z Pr(>|z|)
FACILITY_LOCATION_FMiddle Atlantic     0.2710    1.3113   0.3311  0.818    0.413
FACILITY_LOCATION_FSouth Atlantic      0.3769    1.4578   0.3252  1.159    0.246
FACILITY_LOCATION_FEast North Central  0.1597    1.1732   0.3365  0.475    0.635
FACILITY_LOCATION_FEast South Central  0.3506    1.4199   0.3831  0.915    0.360
FACILITY_LOCATION_FWest North Central  0.4079    1.5036   0.3513  1.161    0.246
FACILITY_LOCATION_FWest South Central  0.3003    1.3503   0.3599  0.834    0.404
FACILITY_LOCATION_FMountain           -0.4455    0.6405   0.5840 -0.763    0.446
FACILITY_LOCATION_FPacific             0.2911    1.3379   0.3351  0.869    0.385

                                      exp(coef) exp(-coef) lower .95 upper .95
FACILITY_LOCATION_FMiddle Atlantic       1.3113     0.7626    0.6853     2.509
FACILITY_LOCATION_FSouth Atlantic        1.4578     0.6860    0.7707     2.758
FACILITY_LOCATION_FEast North Central    1.1732     0.8524    0.6066     2.269
FACILITY_LOCATION_FEast South Central    1.4199     0.7043    0.6701     3.009
FACILITY_LOCATION_FWest North Central    1.5036     0.6651    0.7553     2.993
FACILITY_LOCATION_FWest South Central    1.3503     0.7406    0.6669     2.734
FACILITY_LOCATION_FMountain              0.6405     1.5612    0.2039     2.012
FACILITY_LOCATION_FPacific               1.3379     0.7474    0.6938     2.580

Concordance= 0.529  (se = 0.018 )
Rsquare= 0.013   (max possible= 1 )
Likelihood ratio test= 5.54  on 8 df,   p=0.6984
Wald test            = 4.86  on 8 df,   p=0.772
Score (logrank) test = 4.99  on 8 df,   p=0.7589
Removed 1 rows containing missing values (geom_errorbar).



   
## Unadjusted Kaplan Meier Overall Survival Curve for:  FACILITY_LOCATION_F

Facility Geography

uni_var(test_var = "FACILITY_GEOGRAPHY", data_imp = data)
_________________________________________________
   
## FACILITY_GEOGRAPHY
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ FACILITY_GEOGRAPHY, data = data)

   340 observations deleted due to missingness 
                               n events median 0.95LCL 0.95UCL
FACILITY_GEOGRAPHY=Northeast  92     65   12.4    9.89    23.6
FACILITY_GEOGRAPHY=South     132     94   14.3    9.59    21.5
FACILITY_GEOGRAPHY=Midwest   135     94   13.0    8.34    20.8
FACILITY_GEOGRAPHY=West       73     51   15.3    9.79    27.0

Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ FACILITY_GEOGRAPHY, data = data)

340 observations deleted due to missingness 
                FACILITY_GEOGRAPHY=Northeast 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     47      43    0.526  0.0525        0.433        0.640
   24     32      13    0.376  0.0515        0.287        0.491
   36     21       6    0.301  0.0496        0.218        0.416
   48     18       1    0.287  0.0492        0.205        0.402
   60     16       0    0.287  0.0492        0.205        0.402
  120      5       2    0.248  0.0497        0.168        0.367

                FACILITY_GEOGRAPHY=South 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     57      57    0.537  0.0454       0.4546        0.633
   24     36      19    0.354  0.0454       0.2751        0.455
   36     27       7    0.282  0.0435       0.2088        0.382
   48     21       2    0.261  0.0428       0.1890        0.360
   60     19       2    0.236  0.0422       0.1662        0.335
  120      4       7    0.131  0.0390       0.0728        0.234

                FACILITY_GEOGRAPHY=Midwest 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     65      60    0.539  0.0439        0.460        0.633
   24     45      17    0.398  0.0438        0.321        0.494
   36     36       7    0.336  0.0428        0.261        0.431
   48     28       4    0.296  0.0421        0.224        0.391
   60     27       1    0.285  0.0419        0.214        0.381
  120      6       4    0.223  0.0437        0.152        0.327

                FACILITY_GEOGRAPHY=West 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     39      32    0.557  0.0586        0.453        0.684
   24     26      11    0.391  0.0587        0.292        0.525
   36     17       6    0.297  0.0559        0.206        0.430
   48     13       2    0.260  0.0547        0.172        0.393
   60     10       0    0.260  0.0547        0.172        0.393
  120      3       0    0.260  0.0547        0.172        0.393




   
## Univariable Cox Proportional Hazard Model for:  FACILITY_GEOGRAPHY

Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ FACILITY_GEOGRAPHY, data = data)

  n= 432, number of events= 304 
   (340 observations deleted due to missingness)

                              coef exp(coef) se(coef)      z Pr(>|z|)
FACILITY_GEOGRAPHYSouth    0.13556   1.14517  0.16138  0.840    0.401
FACILITY_GEOGRAPHYMidwest  0.05184   1.05321  0.16139  0.321    0.748
FACILITY_GEOGRAPHYWest    -0.01028   0.98977  0.18712 -0.055    0.956

                          exp(coef) exp(-coef) lower .95 upper .95
FACILITY_GEOGRAPHYSouth      1.1452     0.8732    0.8346     1.571
FACILITY_GEOGRAPHYMidwest    1.0532     0.9495    0.7676     1.445
FACILITY_GEOGRAPHYWest       0.9898     1.0103    0.6859     1.428

Concordance= 0.513  (se = 0.017 )
Rsquare= 0.002   (max possible= 1 )
Likelihood ratio test= 1.02  on 3 df,   p=0.7973
Wald test            = 1.02  on 3 df,   p=0.7956
Score (logrank) test = 1.02  on 3 df,   p=0.7953
Removed 1 rows containing missing values (geom_errorbar).



   
## Unadjusted Kaplan Meier Overall Survival Curve for:  FACILITY_GEOGRAPHY

Age Group

uni_var(test_var = "AGE_F", data_imp = data)
_________________________________________________
   
## AGE_F
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ AGE_F, data = data)

                 n events median 0.95LCL 0.95UCL
AGE_F=(0,54]   510    210     NA   68.27      NA
AGE_F=(54,64]   96     71  18.37   11.47   26.87
AGE_F=(64,74]   94     68  12.42    7.26   19.35
AGE_F=(74,100]  72     68   3.22    2.23    5.52

Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ AGE_F, data = data)

                AGE_F=(0,54] 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    359     112    0.770  0.0191        0.733        0.808
   24    284      53    0.653  0.0220        0.611        0.697
   36    229      26    0.591  0.0230        0.548        0.638
   48    199       5    0.577  0.0233        0.534        0.625
   60    177       3    0.568  0.0235        0.524        0.616
  120     57      11    0.522  0.0257        0.474        0.575

                AGE_F=(54,64] 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     50      38    0.583  0.0519        0.490        0.695
   24     37      12    0.443  0.0530        0.350        0.560
   36     22      12    0.293  0.0498        0.210        0.408
   48     16       3    0.251  0.0481        0.172        0.366
   60     12       2    0.218  0.0471        0.143        0.333
  120      1       4    0.140  0.0440        0.076        0.259

                AGE_F=(64,74] 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     45      46    0.504  0.0520        0.412        0.617
   24     27      15    0.330  0.0499        0.245        0.444
   36     22       3    0.292  0.0487        0.211        0.405
   48     18       1    0.279  0.0483        0.198        0.391
   60     18       0    0.279  0.0483        0.198        0.391
  120      4       2    0.242  0.0485        0.163        0.358

                AGE_F=(74,100] 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     13      57   0.1945  0.0473      0.12077        0.313
   24      8       5   0.1197  0.0392      0.06301        0.227
   36      7       1   0.1048  0.0371      0.05237        0.210
   48      3       3   0.0599  0.0288      0.02328        0.154
   60      3       0   0.0599  0.0288      0.02328        0.154
  120      1       2   0.0200  0.0189      0.00311        0.128




   
## Univariable Cox Proportional Hazard Model for:  AGE_F

Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ AGE_F, data = data)

  n= 772, number of events= 417 

                coef exp(coef) se(coef)      z Pr(>|z|)    
AGE_F(54,64]  0.8775    2.4049   0.1379  6.364 1.97e-10 ***
AGE_F(64,74]  0.9283    2.5303   0.1399  6.635 3.25e-11 ***
AGE_F(74,100] 1.7739    5.8935   0.1425 12.450  < 2e-16 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

              exp(coef) exp(-coef) lower .95 upper .95
AGE_F(54,64]      2.405     0.4158     1.835     3.151
AGE_F(64,74]      2.530     0.3952     1.923     3.329
AGE_F(74,100]     5.894     0.1697     4.458     7.792

Concordance= 0.645  (se = 0.012 )
Rsquare= 0.176   (max possible= 0.999 )
Likelihood ratio test= 149.8  on 3 df,   p=0
Wald test            = 174.7  on 3 df,   p=0
Score (logrank) test = 207.2  on 3 df,   p=0
Removed 1 rows containing missing values (geom_errorbar).



   
## Unadjusted Kaplan Meier Overall Survival Curve for:  AGE_F

Age Group

uni_var(test_var = "AGE_40", data_imp = data)
_________________________________________________
   
## AGE_40
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ AGE_40, data = data)

                  n events median 0.95LCL 0.95UCL
AGE_40=(0,40]   349    118     NA      NA      NA
AGE_40=(40,100] 423    299   13.6    11.4    17.1

Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ AGE_40, data = data)

                AGE_40=(0,40] 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    265      64    0.809  0.0215        0.768        0.852
   24    220      27    0.724  0.0247        0.677        0.774
   36    179      16    0.669  0.0264        0.619        0.723
   48    156       3    0.657  0.0268        0.606        0.712
   60    138       2    0.648  0.0272        0.597        0.704
  120     45       6    0.609  0.0301        0.553        0.671

                AGE_40=(40,100] 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    202     189    0.536  0.0248        0.489        0.587
   24    136      58    0.379  0.0247        0.334        0.431
   36    101      26    0.305  0.0238        0.262        0.355
   48     80       9    0.277  0.0234        0.234        0.326
   60     72       3    0.266  0.0233        0.224        0.316
  120     18      13    0.204  0.0239        0.162        0.256




   
## Univariable Cox Proportional Hazard Model for:  AGE_40

Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ AGE_40, data = data)

  n= 772, number of events= 417 

                 coef exp(coef) se(coef)     z Pr(>|z|)    
AGE_40(40,100] 1.1461    3.1460   0.1096 10.46   <2e-16 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

               exp(coef) exp(-coef) lower .95 upper .95
AGE_40(40,100]     3.146     0.3179     2.538       3.9

Concordance= 0.631  (se = 0.013 )
Rsquare= 0.147   (max possible= 0.999 )
Likelihood ratio test= 122.9  on 1 df,   p=0
Wald test            = 109.4  on 1 df,   p=0
Score (logrank) test = 121.2  on 1 df,   p=0
Removed 1 rows containing missing values (geom_errorbar).



   
## Unadjusted Kaplan Meier Overall Survival Curve for:  AGE_40

Gender

uni_var(test_var = "SEX_F", data_imp = data)
_________________________________________________
   
## SEX_F
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ SEX_F, data = data)

               n events median 0.95LCL 0.95UCL
SEX_F=Male   516    269   34.1    25.2    64.4
SEX_F=Female 256    148   20.7    14.7    34.8

Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ SEX_F, data = data)

                SEX_F=Male 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    331     151    0.696  0.0207        0.656        0.738
   24    257      60    0.567  0.0226        0.525        0.613
   36    198      32    0.494  0.0231        0.451        0.542
   48    163       8    0.473  0.0233        0.430        0.521
   60    144       4    0.461  0.0235        0.417        0.509
  120     43      13    0.405  0.0256        0.357        0.458

                SEX_F=Female 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    136     102    0.586  0.0315        0.527        0.651
   24     99      25    0.473  0.0326        0.413        0.541
   36     82      10    0.423  0.0327        0.364        0.493
   48     73       4    0.402  0.0327        0.343        0.472
   60     66       1    0.397  0.0328        0.338        0.466
  120     20       6    0.353  0.0340        0.292        0.426




   
## Univariable Cox Proportional Hazard Model for:  SEX_F

Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ SEX_F, data = data)

  n= 772, number of events= 417 

              coef exp(coef) se(coef)     z Pr(>|z|)  
SEX_FFemale 0.2399    1.2711   0.1024 2.343   0.0191 *
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

            exp(coef) exp(-coef) lower .95 upper .95
SEX_FFemale     1.271     0.7867      1.04     1.554

Concordance= 0.535  (se = 0.012 )
Rsquare= 0.007   (max possible= 0.999 )
Likelihood ratio test= 5.35  on 1 df,   p=0.0207
Wald test            = 5.49  on 1 df,   p=0.01915
Score (logrank) test = 5.51  on 1 df,   p=0.01886
Removed 1 rows containing missing values (geom_errorbar).



   
## Unadjusted Kaplan Meier Overall Survival Curve for:  SEX_F

RACE_F

uni_var(test_var = "RACE_F", data_imp = data)
_________________________________________________
   
## RACE_F
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ RACE_F, data = data)

                   n events median 0.95LCL 0.95UCL
RACE_F=White     607    321   31.0    24.2    59.9
RACE_F=Black     106     66   18.8    12.2    34.3
RACE_F=Other/Unk  23      9     NA    15.0      NA
RACE_F=Asian      36     21   38.0    13.1      NA

Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ RACE_F, data = data)

                RACE_F=White 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    369     193    0.669  0.0196        0.631        0.708
   24    284      66    0.546  0.0210        0.506        0.589
   36    227      32    0.483  0.0214        0.443        0.526
   48    194       7    0.467  0.0215        0.427        0.511
   60    172       5    0.454  0.0216        0.414        0.499
  120     50      18    0.392  0.0235        0.348        0.441

                RACE_F=Black 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     60      41    0.603  0.0483        0.516        0.706
   24     43      14    0.460  0.0497        0.372        0.568
   36     29       8    0.370  0.0492        0.285        0.480
   48     23       2    0.343  0.0491        0.259        0.454
   60     22       0    0.343  0.0491        0.259        0.454
  120      7       1    0.324  0.0499        0.240        0.439

                RACE_F=Other/Unk 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     15       7    0.685  0.0988        0.516        0.909
   24     13       1    0.639  0.1022        0.467        0.874
   36     11       1    0.590  0.1055        0.416        0.838
   48      9       0    0.590  0.1055        0.416        0.838
   60      7       0    0.590  0.1055        0.416        0.838
  120      3       0    0.590  0.1055        0.416        0.838

                RACE_F=Asian 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     23      12    0.659  0.0800        0.519        0.836
   24     16       4    0.535  0.0860        0.390        0.733
   36     13       1    0.501  0.0868        0.357        0.704
   48     10       3    0.386  0.0888        0.245        0.606
   60      9       0    0.386  0.0888        0.245        0.606
  120      3       0    0.386  0.0888        0.245        0.606




   
## Univariable Cox Proportional Hazard Model for:  RACE_F

Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ RACE_F, data = data)

  n= 772, number of events= 417 

                   coef exp(coef) se(coef)      z Pr(>|z|)  
RACE_FBlack      0.2346    1.2645   0.1353  1.735   0.0828 .
RACE_FOther/Unk -0.3943    0.6742   0.3380 -1.167   0.2434  
RACE_FAsian      0.0603    1.0621   0.2253  0.268   0.7890  
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

                exp(coef) exp(-coef) lower .95 upper .95
RACE_FBlack        1.2645     0.7909    0.9700     1.648
RACE_FOther/Unk    0.6742     1.4833    0.3476     1.308
RACE_FAsian        1.0622     0.9415    0.6830     1.652

Concordance= 0.517  (se = 0.011 )
Rsquare= 0.006   (max possible= 0.999 )
Likelihood ratio test= 4.76  on 3 df,   p=0.1903
Wald test            = 4.69  on 3 df,   p=0.1963
Score (logrank) test = 4.73  on 3 df,   p=0.1924
Removed 1 rows containing missing values (geom_errorbar).



   
## Unadjusted Kaplan Meier Overall Survival Curve for:  RACE_F

Hispanic

uni_var(test_var = "HISPANIC", data_imp = data)
_________________________________________________
   
## HISPANIC
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ HISPANIC, data = data)

                   n events median 0.95LCL 0.95UCL
HISPANIC=No      601    324   29.8   24.21    48.1
HISPANIC=Yes     125     62   32.9   15.01      NA
HISPANIC=Unknown  46     31   14.7    5.52    34.3

Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ HISPANIC, data = data)

                HISPANIC=No 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    377     189    0.675  0.0195        0.638        0.714
   24    287      70    0.546  0.0210        0.507        0.589
   36    230      33    0.482  0.0213        0.442        0.526
   48    195      12    0.456  0.0214        0.416        0.500
   60    174       5    0.444  0.0215        0.404        0.488
  120     52      14    0.398  0.0228        0.355        0.445

                HISPANIC=Yes 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     66      44    0.623  0.0452        0.540        0.718
   24     53       7    0.552  0.0473        0.467        0.653
   36     39       6    0.484  0.0490        0.397        0.591
   48     31       0    0.484  0.0490        0.397        0.591
   60     27       0    0.484  0.0490        0.397        0.591
  120      7       5    0.364  0.0609        0.262        0.505

                HISPANIC=Unknown 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     24      20    0.558  0.0742        0.430        0.724
   24     16       8    0.372  0.0730        0.253        0.546
   36     11       3    0.299  0.0698        0.189        0.472
   48     10       0    0.299  0.0698        0.189        0.472
   60      9       0    0.299  0.0698        0.189        0.472
  120      4       0    0.299  0.0698        0.189        0.472




   
## Univariable Cox Proportional Hazard Model for:  HISPANIC

Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ HISPANIC, data = data)

  n= 772, number of events= 417 

                   coef exp(coef) se(coef)     z Pr(>|z|)  
HISPANICYes     0.02606   1.02641  0.13869 0.188   0.8509  
HISPANICUnknown 0.41562   1.51531  0.18812 2.209   0.0272 *
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

                exp(coef) exp(-coef) lower .95 upper .95
HISPANICYes         1.026     0.9743    0.7821     1.347
HISPANICUnknown     1.515     0.6599    1.0480     2.191

Concordance= 0.518  (se = 0.01 )
Rsquare= 0.006   (max possible= 0.999 )
Likelihood ratio test= 4.36  on 2 df,   p=0.113
Wald test            = 4.89  on 2 df,   p=0.08686
Score (logrank) test = 4.96  on 2 df,   p=0.08392
Removed 1 rows containing missing values (geom_errorbar).



   
## Unadjusted Kaplan Meier Overall Survival Curve for:  HISPANIC

Insurance Status

uni_var(test_var = "INSURANCE_F", data_imp = data)
_________________________________________________
   
## INSURANCE_F
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ INSURANCE_F, data = data)

                               n events median 0.95LCL 0.95UCL
INSURANCE_F=Private          403    195  60.98   34.83      NA
INSURANCE_F=None              56     27  19.32   12.19      NA
INSURANCE_F=Medicaid         119     53  99.06   24.64      NA
INSURANCE_F=Medicare         161    125   7.26    5.52    10.4
INSURANCE_F=Other Government  12      8  17.38   11.20      NA
INSURANCE_F=Unknown           21      9     NA   33.28      NA

Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ INSURANCE_F, data = data)

                INSURANCE_F=Private 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    281      98    0.749  0.0220        0.707        0.793
   24    222      46    0.623  0.0249        0.577        0.674
   36    180      27    0.546  0.0259        0.498        0.599
   48    155       8    0.520  0.0262        0.472        0.574
   60    142       4    0.507  0.0264        0.458        0.561
  120     44      12    0.452  0.0283        0.400        0.511

                INSURANCE_F=None 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     27      17    0.646  0.0700        0.523        0.799
   24     19       7    0.472  0.0760        0.345        0.648
   36     15       1    0.443  0.0768        0.315        0.622
   48     11       1    0.409  0.0781        0.281        0.594
   60      8       0    0.409  0.0781        0.281        0.594
  120      4       1    0.350  0.0860        0.217        0.567

                INSURANCE_F=Medicaid 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     81      33    0.715  0.0420        0.637        0.802
   24     58      13    0.592  0.0466        0.508        0.691
   36     44       4    0.548  0.0482        0.461        0.651
   48     38       1    0.535  0.0486        0.448        0.640
   60     30       0    0.535  0.0486        0.448        0.640
  120      7       2    0.472  0.0599        0.368        0.606

                INSURANCE_F=Medicare 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     58      96    0.387  0.0391        0.317        0.471
   24     40      16    0.277  0.0364        0.214        0.359
   36     30       7    0.228  0.0344        0.170        0.307
   48     22       2    0.213  0.0337        0.156        0.290
   60     21       0    0.213  0.0337        0.156        0.290
  120      5       3    0.175  0.0342        0.119        0.257

                INSURANCE_F=Other Government 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12      6       4    0.642   0.144       0.4132        0.996
   24      4       2    0.428   0.156       0.2089        0.876
   36      2       1    0.321   0.149       0.1287        0.800
   48      2       0    0.321   0.149       0.1287        0.800
   60      1       1    0.160   0.136       0.0305        0.843

                INSURANCE_F=Unknown 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     14       5    0.762  0.0929        0.600        0.968
   24     13       1    0.707  0.1010        0.535        0.936
   36      9       2    0.584  0.1154        0.396        0.860
   48      8       0    0.584  0.1154        0.396        0.860
   60      8       0    0.584  0.1154        0.396        0.860
  120      3       1    0.511  0.1218        0.320        0.815




   
## Univariable Cox Proportional Hazard Model for:  INSURANCE_F

Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ INSURANCE_F, data = data)

  n= 772, number of events= 417 

                                coef exp(coef) se(coef)      z Pr(>|z|)    
INSURANCE_FNone              0.34026   1.40531  0.20561  1.655   0.0979 .  
INSURANCE_FMedicaid         -0.01693   0.98321  0.15496 -0.109   0.9130    
INSURANCE_FMedicare          0.98589   2.68019  0.11544  8.540   <2e-16 ***
INSURANCE_FOther Government  0.53287   1.70382  0.36103  1.476   0.1399    
INSURANCE_FUnknown          -0.15051   0.86027  0.34098 -0.441   0.6589    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

                            exp(coef) exp(-coef) lower .95 upper .95
INSURANCE_FNone                1.4053     0.7116    0.9392     2.103
INSURANCE_FMedicaid            0.9832     1.0171    0.7257     1.332
INSURANCE_FMedicare            2.6802     0.3731    2.1375     3.361
INSURANCE_FOther Government    1.7038     0.5869    0.8397     3.457
INSURANCE_FUnknown             0.8603     1.1624    0.4410     1.678

Concordance= 0.602  (se = 0.013 )
Rsquare= 0.09   (max possible= 0.999 )
Likelihood ratio test= 72.6  on 5 df,   p=2.942e-14
Wald test            = 82.46  on 5 df,   p=2.22e-16
Score (logrank) test = 88.86  on 5 df,   p=0
Removed 1 rows containing missing values (geom_errorbar).



   
## Unadjusted Kaplan Meier Overall Survival Curve for:  INSURANCE_F

Overall Survival pre/post-ACA expansion

uni_var(test_var = "EXPN_GROUP", data_imp = no_Excludes)
_________________________________________________
   
## EXPN_GROUP
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ EXPN_GROUP, data = no_Excludes)

                            n events median 0.95LCL 0.95UCL
EXPN_GROUP=Post-Expansion 144     20     NA    82.8      NA
EXPN_GROUP=Pre-Expansion  562    145    132   125.1      NA

Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ EXPN_GROUP, data = no_Excludes)

                EXPN_GROUP=Post-Expansion 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    119       5    0.963  0.0163        0.931        0.995
   24     85       9    0.880  0.0303        0.823        0.942
   36     42       4    0.827  0.0386        0.755        0.906
   48     28       1    0.799  0.0467        0.712        0.896
   60     18       0    0.799  0.0467        0.712        0.896

                EXPN_GROUP=Pre-Expansion 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    498      20    0.963 0.00815        0.947        0.979
   24    457      16    0.931 0.01111        0.909        0.953
   36    394      20    0.888 0.01419        0.860        0.916
   48    322      16    0.849 0.01652        0.818        0.882
   60    253      25    0.778 0.02044        0.739        0.819
  120     51      39    0.586 0.03289        0.525        0.655




   
## Univariable Cox Proportional Hazard Model for:  EXPN_GROUP

Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ EXPN_GROUP, data = no_Excludes)

  n= 706, number of events= 165 

                           coef exp(coef) se(coef)      z Pr(>|z|)
EXPN_GROUPPre-Expansion -0.2186    0.8036   0.2458 -0.889    0.374

                        exp(coef) exp(-coef) lower .95 upper .95
EXPN_GROUPPre-Expansion    0.8036      1.244    0.4964     1.301

Concordance= 0.519  (se = 0.016 )
Rsquare= 0.001   (max possible= 0.932 )
Likelihood ratio test= 0.75  on 1 df,   p=0.3855
Wald test            = 0.79  on 1 df,   p=0.3739
Score (logrank) test = 0.79  on 1 df,   p=0.373





   
## Unadjusted Kaplan Meier Overall Survival Curve for:  EXPN_GROUP

Education

uni_var(test_var = "EDUCATION_F", data_imp = data)
_________________________________________________
   
## EDUCATION_F
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ EDUCATION_F, data = data)

   8 observations deleted due to missingness 
                           n events median 0.95LCL 0.95UCL
EDUCATION_F=21% or more  146     86   20.8    13.1    34.3
EDUCATION_F=13 - 20.9%   210    105   28.6    24.1    93.9
EDUCATION_F=7 - 12.9%    223    120   32.3    20.8      NA
EDUCATION_F=Less than 7% 185    103   34.8    20.7    65.0

Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ EDUCATION_F, data = data)

8 observations deleted due to missingness 
                EDUCATION_F=21% or more 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     78      57    0.588  0.0421        0.511        0.676
   24     54      18    0.444  0.0434        0.366        0.537
   36     38       6    0.388  0.0436        0.311        0.483
   48     32       0    0.388  0.0436        0.311        0.483
   60     28       1    0.375  0.0439        0.298        0.472
  120      5       4    0.283  0.0534        0.195        0.409

                EDUCATION_F=13 - 20.9% 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    125      63    0.684  0.0331        0.622        0.752
   24     93      20    0.571  0.0360        0.504        0.646
   36     70      14    0.484  0.0373        0.416        0.563
   48     57       3    0.462  0.0377        0.394        0.542
   60     52       0    0.462  0.0377        0.394        0.542
  120     23       5    0.413  0.0396        0.342        0.498

                EDUCATION_F=7 - 12.9% 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    142      74    0.662  0.0320        0.603        0.728
   24    110      25    0.542  0.0340        0.480        0.613
   36     94      12    0.482  0.0344        0.419        0.554
   48     78       6    0.450  0.0345        0.387        0.523
   60     72       1    0.444  0.0346        0.381        0.517
  120     18       2    0.425  0.0360        0.360        0.501

                EDUCATION_F=Less than 7% 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    118      56    0.688  0.0347        0.623        0.759
   24     95      22    0.559  0.0375        0.490        0.637
   36     76      10    0.499  0.0380        0.430        0.579
   48     67       3    0.479  0.0382        0.409        0.560
   60     56       3    0.455  0.0387        0.385        0.538
  120     16       8    0.373  0.0423        0.299        0.466




   
## Univariable Cox Proportional Hazard Model for:  EDUCATION_F

Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ EDUCATION_F, data = data)

  n= 764, number of events= 414 
   (8 observations deleted due to missingness)

                           coef exp(coef) se(coef)      z Pr(>|z|)  
EDUCATION_F13 - 20.9%   -0.2552    0.7748   0.1456 -1.753   0.0795 .
EDUCATION_F7 - 12.9%    -0.2469    0.7812   0.1415 -1.745   0.0810 .
EDUCATION_FLess than 7% -0.2196    0.8029   0.1462 -1.501   0.1333  
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

                        exp(coef) exp(-coef) lower .95 upper .95
EDUCATION_F13 - 20.9%      0.7748      1.291    0.5825     1.031
EDUCATION_F7 - 12.9%       0.7812      1.280    0.5920     1.031
EDUCATION_FLess than 7%    0.8029      1.246    0.6028     1.069

Concordance= 0.516  (se = 0.014 )
Rsquare= 0.005   (max possible= 0.999 )
Likelihood ratio test= 3.84  on 3 df,   p=0.2797
Wald test            = 4.02  on 3 df,   p=0.2597
Score (logrank) test = 4.04  on 3 df,   p=0.2576
Removed 1 rows containing missing values (geom_errorbar).



   
## Unadjusted Kaplan Meier Overall Survival Curve for:  EDUCATION_F

Urban/Rural

uni_var(test_var = "U_R_F", data_imp = data)
_________________________________________________
   
## U_R_F
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ U_R_F, data = data)

   27 observations deleted due to missingness 
              n events median 0.95LCL 0.95UCL
U_R_F=Metro 656    357   26.9    23.6    38.5
U_R_F=Urban  79     39   38.5    17.4      NA
U_R_F=Rural  10      6   28.6     2.0      NA

Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ U_R_F, data = data)

27 observations deleted due to missingness 
                U_R_F=Metro 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    400     213    0.663  0.0188        0.628        0.701
   24    305      76    0.534  0.0202        0.496        0.575
   36    238      38    0.465  0.0204        0.427        0.507
   48    202       8    0.449  0.0205        0.410        0.491
   60    181       5    0.437  0.0206        0.399        0.480
  120     57      16    0.386  0.0221        0.345        0.432

                U_R_F=Urban 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     44      28    0.623  0.0564        0.522        0.744
   24     33       5    0.548  0.0587        0.444        0.676
   36     30       1    0.530  0.0594        0.426        0.660
   48     25       3    0.476  0.0610        0.371        0.612
   60     21       0    0.476  0.0610        0.371        0.612
  120      4       2    0.426  0.0642        0.317        0.572

                U_R_F=Rural 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12      6       3    0.700   0.145        0.467        1.000
   24      5       1    0.583   0.161        0.340        1.000
   36      3       1    0.467   0.166        0.233        0.936
   48      2       1    0.311   0.168        0.108        0.899
   60      2       0    0.311   0.168        0.108        0.899




   
## Univariable Cox Proportional Hazard Model for:  U_R_F

Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ U_R_F, data = data)

  n= 745, number of events= 402 
   (27 observations deleted due to missingness)

               coef exp(coef) se(coef)      z Pr(>|z|)
U_R_FUrban -0.04314   0.95778  0.16867 -0.256    0.798
U_R_FRural  0.19833   1.21937  0.41173  0.482    0.630

           exp(coef) exp(-coef) lower .95 upper .95
U_R_FUrban    0.9578     1.0441    0.6882     1.333
U_R_FRural    1.2194     0.8201    0.5441     2.733

Concordance= 0.501  (se = 0.008 )
Rsquare= 0   (max possible= 0.999 )
Likelihood ratio test= 0.29  on 2 df,   p=0.8634
Wald test            = 0.31  on 2 df,   p=0.8573
Score (logrank) test = 0.31  on 2 df,   p=0.8569
Removed 1 rows containing missing values (geom_errorbar).



   
## Unadjusted Kaplan Meier Overall Survival Curve for:  U_R_F

Class (treatment at performing facility)

uni_var(test_var = "CLASS_OF_CASE_F", data_imp = data)
_________________________________________________
   
## CLASS_OF_CASE_F
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ CLASS_OF_CASE_F, data = data)

                                 n events median 0.95LCL 0.95UCL
CLASS_OF_CASE_F=Other_Facility  63     15     NA   106.2      NA
CLASS_OF_CASE_F=All_Part_Prim  709    402   26.6    21.6    34.8

Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ CLASS_OF_CASE_F, data = data)

                CLASS_OF_CASE_F=Other_Facility 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     30       9    0.802  0.0596        0.693        0.928
   24     25       3    0.719  0.0702        0.594        0.871
   36     24       0    0.719  0.0702        0.594        0.871
   48     19       1    0.686  0.0742        0.555        0.848
   60     18       0    0.686  0.0742        0.555        0.848
  120      5       2    0.567  0.1027        0.398        0.809

                CLASS_OF_CASE_F=All_Part_Prim 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    437     244    0.650  0.0181        0.616        0.687
   24    331      82    0.525  0.0192        0.488        0.564
   36    256      42    0.456  0.0194        0.420        0.496
   48    217      11    0.436  0.0195        0.399        0.476
   60    192       5    0.425  0.0196        0.388        0.465
  120     58      17    0.377  0.0208        0.338        0.420




   
## Univariable Cox Proportional Hazard Model for:  CLASS_OF_CASE_F

Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ CLASS_OF_CASE_F, data = data)

  n= 772, number of events= 417 

                               coef exp(coef) se(coef)     z Pr(>|z|)   
CLASS_OF_CASE_FAll_Part_Prim 0.6981    2.0100   0.2630 2.654  0.00794 **
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

                             exp(coef) exp(-coef) lower .95 upper .95
CLASS_OF_CASE_FAll_Part_Prim      2.01     0.4975       1.2     3.366

Concordance= 0.517  (se = 0.007 )
Rsquare= 0.011   (max possible= 0.999 )
Likelihood ratio test= 8.82  on 1 df,   p=0.002988
Wald test            = 7.05  on 1 df,   p=0.007944
Score (logrank) test = 7.34  on 1 df,   p=0.006755
Removed 1 rows containing missing values (geom_errorbar).



   
## Unadjusted Kaplan Meier Overall Survival Curve for:  CLASS_OF_CASE_F

Year

uni_var(test_var = "YEAR_OF_DIAGNOSIS", data_imp = data)
_________________________________________________
   
## YEAR_OF_DIAGNOSIS
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ YEAR_OF_DIAGNOSIS, data = data)

                        n events median 0.95LCL 0.95UCL
YEAR_OF_DIAGNOSIS=2004 96     50   48.1   19.48      NA
YEAR_OF_DIAGNOSIS=2005 80     50   30.2   19.35    93.9
YEAR_OF_DIAGNOSIS=2006 79     48   18.7   13.80    99.1
YEAR_OF_DIAGNOSIS=2007 58     35   21.6   12.00      NA
YEAR_OF_DIAGNOSIS=2008 67     37   27.7   17.77      NA
YEAR_OF_DIAGNOSIS=2009 76     45   24.2   10.84      NA
YEAR_OF_DIAGNOSIS=2010 52     22     NA   33.28      NA
YEAR_OF_DIAGNOSIS=2011 54     29   18.4    9.03      NA
YEAR_OF_DIAGNOSIS=2012 57     27   55.6   16.56      NA
YEAR_OF_DIAGNOSIS=2013 58     34   25.1   13.11      NA
YEAR_OF_DIAGNOSIS=2014 61     28   28.6   16.26      NA
YEAR_OF_DIAGNOSIS=2015 34     12     NA   18.10      NA

Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ YEAR_OF_DIAGNOSIS, data = data)

                YEAR_OF_DIAGNOSIS=2004 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     61      29    0.690  0.0480        0.602        0.790
   24     47      12    0.551  0.0524        0.457        0.664
   36     43       2    0.528  0.0528        0.434        0.642
   48     41       2    0.503  0.0531        0.409        0.619
   60     40       1    0.491  0.0532        0.397        0.607
  120     24       4    0.439  0.0536        0.345        0.558

                YEAR_OF_DIAGNOSIS=2005 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     54      24    0.696  0.0518        0.602        0.805
   24     42      12    0.541  0.0563        0.442        0.664
   36     37       5    0.477  0.0565        0.378        0.602
   48     35       2    0.451  0.0563        0.353        0.576
   60     33       1    0.438  0.0562        0.341        0.564
  120     21       5    0.370  0.0552        0.276        0.495

                YEAR_OF_DIAGNOSIS=2006 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     48      27    0.646  0.0548        0.548        0.763
   24     36      11    0.497  0.0578        0.396        0.624
   36     29       6    0.412  0.0574        0.314        0.541
   48     28       1    0.398  0.0571        0.300        0.527
   60     28       0    0.398  0.0571        0.300        0.527
  120     13       3    0.342  0.0576        0.245        0.475

                YEAR_OF_DIAGNOSIS=2007 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     35      23    0.601  0.0646        0.486        0.742
   24     26       7    0.475  0.0663        0.361        0.625
   36     22       4    0.402  0.0654        0.292        0.553
   48     19       1    0.383  0.0650        0.274        0.534
   60     18       0    0.383  0.0650        0.274        0.534
  120      5       0    0.383  0.0650        0.274        0.534

                YEAR_OF_DIAGNOSIS=2008 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     41      21    0.668  0.0593        0.561        0.795
   24     31      10    0.505  0.0634        0.395        0.646
   36     27       2    0.472  0.0634        0.363        0.614
   48     22       0    0.472  0.0634        0.363        0.614
   60     22       0    0.472  0.0634        0.363        0.614

                YEAR_OF_DIAGNOSIS=2009 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     41      32    0.572  0.0574        0.470        0.697
   24     34       5    0.503  0.0583        0.401        0.631
   36     28       4    0.441  0.0587        0.340        0.573
   48     27       1    0.425  0.0587        0.325        0.557
   60     26       1    0.410  0.0586        0.309        0.542

                YEAR_OF_DIAGNOSIS=2010 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     33      13    0.740  0.0621        0.628        0.873
   24     31       2    0.695  0.0659        0.578        0.837
   36     24       4    0.604  0.0714        0.479        0.762
   48     22       2    0.554  0.0738        0.426        0.719
   60     20       0    0.554  0.0738        0.426        0.719

                YEAR_OF_DIAGNOSIS=2011 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     26      23    0.539  0.0710        0.416        0.697
   24     23       3    0.477  0.0713        0.355        0.639
   36     20       1    0.456  0.0712        0.336        0.619
   48     17       1    0.433  0.0712        0.314        0.598
   60     15       1    0.408  0.0714        0.289        0.574

                YEAR_OF_DIAGNOSIS=2012 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     33      19    0.652  0.0648        0.536        0.792
   24     26       5    0.552  0.0686        0.432        0.704
   36     21       2    0.509  0.0696        0.389        0.665
   48     17       0    0.509  0.0696        0.389        0.665
   60      8       1    0.473  0.0735        0.349        0.641

                YEAR_OF_DIAGNOSIS=2013 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     35      20    0.648  0.0634        0.535        0.785
   24     28       6    0.535  0.0671        0.419        0.684
   36     19       7    0.401  0.0667        0.290        0.556
   48      7       1    0.375  0.0674        0.263        0.533

                YEAR_OF_DIAGNOSIS=2014 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     37      16    0.719  0.0600        0.611        0.847
   24     21       7    0.562  0.0708        0.439        0.719
   36     10       4    0.449  0.0759        0.322        0.625
   48      1       1    0.385  0.0881        0.246        0.603

                YEAR_OF_DIAGNOSIS=2015 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     23       6    0.802  0.0726        0.672        0.958
   24     11       5    0.614  0.0923        0.457        0.825




   
## Univariable Cox Proportional Hazard Model for:  YEAR_OF_DIAGNOSIS
X matrix deemed to be singular; variable 12
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ YEAR_OF_DIAGNOSIS, data = data)

  n= 772, number of events= 417 

                          coef exp(coef) se(coef)      z Pr(>|z|)
YEAR_OF_DIAGNOSIS2005  0.15666   1.16959  0.20002  0.783    0.434
YEAR_OF_DIAGNOSIS2006  0.24547   1.27823  0.20231  1.213    0.225
YEAR_OF_DIAGNOSIS2007  0.23627   1.26652  0.22066  1.071    0.284
YEAR_OF_DIAGNOSIS2008  0.14858   1.16019  0.21718  0.684    0.494
YEAR_OF_DIAGNOSIS2009  0.24340   1.27558  0.20600  1.182    0.237
YEAR_OF_DIAGNOSIS2010 -0.19400   0.82366  0.25636 -0.757    0.449
YEAR_OF_DIAGNOSIS2011  0.24884   1.28254  0.23411  1.063    0.288
YEAR_OF_DIAGNOSIS2012  0.05878   1.06054  0.23966  0.245    0.806
YEAR_OF_DIAGNOSIS2013  0.29259   1.33989  0.22342  1.310    0.190
YEAR_OF_DIAGNOSIS2014  0.13852   1.14857  0.23738  0.584    0.560
YEAR_OF_DIAGNOSIS2015 -0.15884   0.85314  0.32269 -0.492    0.623
YEAR_OF_DIAGNOSIS2016       NA        NA  0.00000     NA       NA

                      exp(coef) exp(-coef) lower .95 upper .95
YEAR_OF_DIAGNOSIS2005    1.1696     0.8550    0.7903     1.731
YEAR_OF_DIAGNOSIS2006    1.2782     0.7823    0.8598     1.900
YEAR_OF_DIAGNOSIS2007    1.2665     0.7896    0.8218     1.952
YEAR_OF_DIAGNOSIS2008    1.1602     0.8619    0.7580     1.776
YEAR_OF_DIAGNOSIS2009    1.2756     0.7840    0.8518     1.910
YEAR_OF_DIAGNOSIS2010    0.8237     1.2141    0.4983     1.361
YEAR_OF_DIAGNOSIS2011    1.2825     0.7797    0.8106     2.029
YEAR_OF_DIAGNOSIS2012    1.0605     0.9429    0.6630     1.696
YEAR_OF_DIAGNOSIS2013    1.3399     0.7463    0.8648     2.076
YEAR_OF_DIAGNOSIS2014    1.1486     0.8706    0.7213     1.829
YEAR_OF_DIAGNOSIS2015    0.8531     1.1721    0.4533     1.606
YEAR_OF_DIAGNOSIS2016        NA         NA        NA        NA

Concordance= 0.538  (se = 0.015 )
Rsquare= 0.01   (max possible= 0.999 )
Likelihood ratio test= 7.53  on 11 df,   p=0.7545
Wald test            = 7.15  on 11 df,   p=0.7865
Score (logrank) test = 7.22  on 11 df,   p=0.7808
Removed 2 rows containing missing values (geom_errorbar).



   
## Unadjusted Kaplan Meier Overall Survival Curve for:  YEAR_OF_DIAGNOSIS
This manual palette can handle a maximum of 10 values. You have supplied 12.

Primary Site

uni_var(test_var = "SITE_TEXT", data_imp = data)
_________________________________________________
   
## SITE_TEXT
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ SITE_TEXT, data = data)

                                                n events median 0.95LCL 0.95UCL
SITE_TEXT=C09.8 Tonsil: Overlapping             1      1  16.26      NA      NA
SITE_TEXT=C09.9 = Tonsil NOS                    9      3     NA    8.64      NA
SITE_TEXT=C11.1 Nasopharynx: Poster Wall        2      0     NA      NA      NA
SITE_TEXT=C14.2 Waldeyer Ring                   4      2  20.34    2.50      NA
SITE_TEXT=C37.9 Thymus                          4      3  12.86    3.35      NA
SITE_TEXT=C42.2 Spleen                          4      3  35.47    4.70      NA
SITE_TEXT=C77.0 Lymph Nodes: HeadFaceNeck      75     33  68.27   26.18      NA
SITE_TEXT=C77.1 Intrathoracic Lymph Nodes      97     38     NA   61.90      NA
SITE_TEXT=C77.2 Intra-abdominal LymphNodes     27     23   6.28    3.78    51.3
SITE_TEXT=C77.3 Lymph Nodes of axilla or arm   26     11     NA   21.06      NA
SITE_TEXT=C77.4 Lymph Nodes: Leg               20     12  25.03   13.11      NA
SITE_TEXT=C77.5 Pelvic Lymph Nodes              6      6   1.97    1.18      NA
SITE_TEXT=C77.8 Lymph Nodes: multiple region  226    117  28.25   23.10      NA
SITE_TEXT=C77.9 Lymph Node NOS                271    165  19.48   14.29    29.8

Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ SITE_TEXT, data = data)

                SITE_TEXT=C09.8 Tonsil: Overlapping 
        time       n.risk      n.event     survival      std.err lower 95% CI upper 95% CI 
          12            1            0            1            0            1            1 

                SITE_TEXT=C09.9 = Tonsil NOS 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12      4       3    0.593   0.185        0.322            1
   24      4       0    0.593   0.185        0.322            1
   36      2       0    0.593   0.185        0.322            1
   48      2       0    0.593   0.185        0.322            1
   60      2       0    0.593   0.185        0.322            1
  120      1       0    0.593   0.185        0.322            1

                SITE_TEXT=C11.1 Nasopharynx: Poster Wall 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12      2       0        1       0            1            1
   24      2       0        1       0            1            1

                SITE_TEXT=C14.2 Waldeyer Ring 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12      3       1     0.75   0.217        0.426            1
   24      2       1     0.50   0.250        0.188            1
   36      2       0     0.50   0.250        0.188            1
   48      1       0     0.50   0.250        0.188            1
   60      1       0     0.50   0.250        0.188            1
  120      1       0     0.50   0.250        0.188            1

                SITE_TEXT=C37.9 Thymus 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12      2       2     0.50   0.250       0.1877            1
   24      1       1     0.25   0.217       0.0458            1
   36      1       0     0.25   0.217       0.0458            1
   48      1       0     0.25   0.217       0.0458            1
   60      1       0     0.25   0.217       0.0458            1

                SITE_TEXT=C42.2 Spleen 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12      3       1     0.75   0.217       0.4259            1
   24      3       0     0.75   0.217       0.4259            1
   36      2       1     0.50   0.250       0.1877            1
   48      1       1     0.25   0.217       0.0458            1
   60      1       0     0.25   0.217       0.0458            1
  120      1       0     0.25   0.217       0.0458            1

                SITE_TEXT=C77.0 Lymph Nodes: HeadFaceNeck 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     48      18    0.743  0.0524        0.647        0.853
   24     37       7    0.628  0.0596        0.522        0.757
   36     30       4    0.559  0.0623        0.450        0.696
   48     28       1    0.541  0.0629        0.431        0.679
   60     27       1    0.522  0.0636        0.411        0.662
  120      8       2    0.481  0.0647        0.370        0.626

                SITE_TEXT=C77.1 Intrathoracic Lymph Nodes 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     79      13    0.861  0.0358        0.794        0.934
   24     60      17    0.674  0.0490        0.585        0.777
   36     52       2    0.651  0.0499        0.560        0.757
   48     47       2    0.625  0.0512        0.533        0.734
   60     37       2    0.597  0.0526        0.502        0.710
  120     13       2    0.562  0.0551        0.464        0.681

                SITE_TEXT=C77.2 Intra-abdominal LymphNodes 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12      7      18   0.3009  0.0926       0.1647        0.550
   24      6       1   0.2579  0.0888       0.1314        0.506
   36      6       0   0.2579  0.0888       0.1314        0.506
   48      6       0   0.2579  0.0888       0.1314        0.506
   60      4       2   0.1720  0.0772       0.0713        0.415
  120      1       2   0.0645  0.0571       0.0114        0.366

                SITE_TEXT=C77.3 Lymph Nodes of axilla or arm  
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     17       7    0.720  0.0898        0.564        0.919
   24     14       2    0.632  0.0980        0.467        0.857
   36     10       2    0.538  0.1036        0.369        0.785
   48      9       0    0.538  0.1036        0.369        0.785
   60      9       0    0.538  0.1036        0.369        0.785
  120      5       0    0.538  0.1036        0.369        0.785

                SITE_TEXT=C77.4 Lymph Nodes: Leg 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     13       6    0.684   0.107        0.504        0.929
   24      9       3    0.526   0.115        0.344        0.806
   36      7       2    0.409   0.115        0.236        0.710
   48      6       1    0.351   0.113        0.187        0.658
   60      6       0    0.351   0.113        0.187        0.658
  120      3       0    0.351   0.113        0.187        0.658

                SITE_TEXT=C77.5 Pelvic Lymph Nodes 
        time       n.risk      n.event     survival      std.err lower 95% CI upper 95% CI 
      12.000        2.000        4.000        0.333        0.192        0.108        1.000 

                SITE_TEXT=C77.8 Lymph Nodes: multiple region 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    142      73    0.668  0.0318        0.609        0.734
   24    110      23    0.555  0.0341        0.492        0.626
   36     84      13    0.488  0.0347        0.425        0.561
   48     66       5    0.457  0.0352        0.393        0.531
   60     60       0    0.457  0.0352        0.393        0.531
  120     15       3    0.420  0.0384        0.351        0.503

                SITE_TEXT=C77.9 Lymph Node NOS 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    144     107    0.589  0.0306        0.532        0.652
   24    108      27    0.476  0.0316        0.418        0.542
   36     84      18    0.394  0.0315        0.337        0.461
   48     69       2    0.385  0.0314        0.328        0.452
   60     62       0    0.385  0.0314        0.328        0.452
  120     15      10    0.301  0.0347        0.240        0.378




   
## Univariable Cox Proportional Hazard Model for:  SITE_TEXT
Loglik converged before variable  2 ; beta may be infinite. 
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ SITE_TEXT, data = data)

  n= 772, number of events= 417 

                                                   coef  exp(coef)   se(coef)      z Pr(>|z|)
SITE_TEXTC09.9 = Tonsil NOS                  -1.139e+00  3.202e-01  1.155e+00 -0.986    0.324
SITE_TEXTC11.1 Nasopharynx: Poster Wall      -1.484e+01  3.595e-07  9.859e+02 -0.015    0.988
SITE_TEXTC14.2 Waldeyer Ring                 -8.817e-01  4.141e-01  1.225e+00 -0.720    0.472
SITE_TEXTC37.9 Thymus                        -2.193e-01  8.030e-01  1.155e+00 -0.190    0.849
SITE_TEXTC42.2 Spleen                        -5.662e-01  5.677e-01  1.155e+00 -0.490    0.624
SITE_TEXTC77.0 Lymph Nodes: HeadFaceNeck     -9.372e-01  3.917e-01  1.016e+00 -0.923    0.356
SITE_TEXTC77.1 Intrathoracic Lymph Nodes     -1.220e+00  2.952e-01  1.014e+00 -1.203    0.229
SITE_TEXTC77.2 Intra-abdominal LymphNodes     2.310e-01  1.260e+00  1.022e+00  0.226    0.821
SITE_TEXTC77.3 Lymph Nodes of axilla or arm  -1.042e+00  3.528e-01  1.045e+00 -0.997    0.319
SITE_TEXTC77.4 Lymph Nodes: Leg              -5.915e-01  5.535e-01  1.041e+00 -0.568    0.570
SITE_TEXTC77.5 Pelvic Lymph Nodes             7.319e-01  2.079e+00  1.080e+00  0.677    0.498
SITE_TEXTC77.8 Lymph Nodes: multiple region  -7.516e-01  4.716e-01  1.005e+00 -0.748    0.454
SITE_TEXTC77.9 Lymph Node NOS                -4.738e-01  6.226e-01  1.004e+00 -0.472    0.637

                                             exp(coef) exp(-coef) lower .95 upper .95
SITE_TEXTC09.9 = Tonsil NOS                  3.202e-01  3.123e+00   0.03327     3.081
SITE_TEXTC11.1 Nasopharynx: Poster Wall      3.595e-07  2.782e+06   0.00000       Inf
SITE_TEXTC14.2 Waldeyer Ring                 4.141e-01  2.415e+00   0.03751     4.571
SITE_TEXTC37.9 Thymus                        8.030e-01  1.245e+00   0.08347     7.726
SITE_TEXTC42.2 Spleen                        5.677e-01  1.761e+00   0.05897     5.465
SITE_TEXTC77.0 Lymph Nodes: HeadFaceNeck     3.917e-01  2.553e+00   0.05351     2.868
SITE_TEXTC77.1 Intrathoracic Lymph Nodes     2.952e-01  3.387e+00   0.04048     2.153
SITE_TEXTC77.2 Intra-abdominal LymphNodes    1.260e+00  7.937e-01   0.16994     9.340
SITE_TEXTC77.3 Lymph Nodes of axilla or arm  3.528e-01  2.834e+00   0.04549     2.736
SITE_TEXTC77.4 Lymph Nodes: Leg              5.535e-01  1.807e+00   0.07188     4.262
SITE_TEXTC77.5 Pelvic Lymph Nodes            2.079e+00  4.810e-01   0.25013    17.282
SITE_TEXTC77.8 Lymph Nodes: multiple region  4.716e-01  2.120e+00   0.06580     3.380
SITE_TEXTC77.9 Lymph Node NOS                6.226e-01  1.606e+00   0.08710     4.451

Concordance= 0.591  (se = 0.014 )
Rsquare= 0.064   (max possible= 0.999 )
Likelihood ratio test= 51.27  on 13 df,   p=1.8e-06
Wald test            = 53.47  on 13 df,   p=7.472e-07
Score (logrank) test = 60.24  on 13 df,   p=4.751e-08
Transformation introduced infinite values in continuous y-axisTransformation introduced infinite values in continuous y-axisTransformation introduced infinite values in continuous y-axisRemoved 1 rows containing missing values (geom_errorbar).Removed 14 rows containing missing values (geom_text).Removed 14 rows containing missing values (geom_text).Removed 14 rows containing missing values (geom_text).Removed 14 rows containing missing values (geom_text).Removed 14 rows containing missing values (geom_text).Removed 1 rows containing missing values (geom_text).



   
## Unadjusted Kaplan Meier Overall Survival Curve for:  SITE_TEXT
This manual palette can handle a maximum of 10 values. You have supplied 14.

Histology

#uni_var(test_var = "HISTOLOGY_F_LIM", data_imp = data)

Grade

#uni_var(test_var = "GRADE_F", data_imp = data)

Clinical T Stage

uni_var(test_var = "TNM_CLIN_T", data_imp = data)
_________________________________________________
   
## TNM_CLIN_T
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ TNM_CLIN_T, data = data)

   22 observations deleted due to missingness 
                 n events median 0.95LCL 0.95UCL
TNM_CLIN_T=N_A 740    398   27.9    24.0    38.5
TNM_CLIN_T=c2    1      1   10.4      NA      NA
TNM_CLIN_T=cX    9      6   65.0    18.7      NA

Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ TNM_CLIN_T, data = data)

22 observations deleted due to missingness 
                TNM_CLIN_T=N_A 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    448     242    0.660  0.0178        0.626        0.696
   24    341      82    0.535  0.0190        0.499        0.574
   36    270      40    0.471  0.0193        0.434        0.510
   48    229      11    0.451  0.0194        0.414        0.490
   60    204       5    0.440  0.0195        0.404        0.480
  120     61      17    0.391  0.0209        0.352        0.434

                TNM_CLIN_T=c2 
     time n.risk n.event survival std.err lower 95% CI upper 95% CI

                TNM_CLIN_T=cX 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12      8       1    0.889   0.105        0.706        1.000
   24      6       2    0.667   0.157        0.420        1.000
   36      6       0    0.667   0.157        0.420        1.000
   48      5       1    0.556   0.166        0.310        0.997
   60      5       0    0.556   0.166        0.310        0.997
  120      2       2    0.333   0.157        0.132        0.840




   
## Univariable Cox Proportional Hazard Model for:  TNM_CLIN_T
X matrix deemed to be singular; variable 1 2 3 4 5 6 8 9 10 11 12 13 14 15 16 17 18 20 21
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ TNM_CLIN_T, data = data)

  n= 750, number of events= 405 
   (22 observations deleted due to missingness)

                   coef exp(coef) se(coef)      z Pr(>|z|)
TNM_CLIN_Tc0         NA        NA  0.00000     NA       NA
TNM_CLIN_Tc1         NA        NA  0.00000     NA       NA
TNM_CLIN_Tc1A        NA        NA  0.00000     NA       NA
TNM_CLIN_Tc1B        NA        NA  0.00000     NA       NA
TNM_CLIN_Tc1C        NA        NA  0.00000     NA       NA
TNM_CLIN_Tc1MI       NA        NA  0.00000     NA       NA
TNM_CLIN_Tc2    1.00498   2.73184  1.00230  1.003    0.316
TNM_CLIN_Tc2A        NA        NA  0.00000     NA       NA
TNM_CLIN_Tc2B        NA        NA  0.00000     NA       NA
TNM_CLIN_Tc2C        NA        NA  0.00000     NA       NA
TNM_CLIN_Tc3         NA        NA  0.00000     NA       NA
TNM_CLIN_Tc3A        NA        NA  0.00000     NA       NA
TNM_CLIN_Tc3B        NA        NA  0.00000     NA       NA
TNM_CLIN_Tc4         NA        NA  0.00000     NA       NA
TNM_CLIN_Tc4A        NA        NA  0.00000     NA       NA
TNM_CLIN_Tc4B        NA        NA  0.00000     NA       NA
TNM_CLIN_Tc4C        NA        NA  0.00000     NA       NA
TNM_CLIN_Tc4D        NA        NA  0.00000     NA       NA
TNM_CLIN_TcX   -0.07431   0.92839  0.41150 -0.181    0.857
TNM_CLIN_TpA         NA        NA  0.00000     NA       NA
TNM_CLIN_TpIS        NA        NA  0.00000     NA       NA

               exp(coef) exp(-coef) lower .95 upper .95
TNM_CLIN_Tc0          NA         NA        NA        NA
TNM_CLIN_Tc1          NA         NA        NA        NA
TNM_CLIN_Tc1A         NA         NA        NA        NA
TNM_CLIN_Tc1B         NA         NA        NA        NA
TNM_CLIN_Tc1C         NA         NA        NA        NA
TNM_CLIN_Tc1MI        NA         NA        NA        NA
TNM_CLIN_Tc2      2.7318     0.3661    0.3831     19.48
TNM_CLIN_Tc2A         NA         NA        NA        NA
TNM_CLIN_Tc2B         NA         NA        NA        NA
TNM_CLIN_Tc2C         NA         NA        NA        NA
TNM_CLIN_Tc3          NA         NA        NA        NA
TNM_CLIN_Tc3A         NA         NA        NA        NA
TNM_CLIN_Tc3B         NA         NA        NA        NA
TNM_CLIN_Tc4          NA         NA        NA        NA
TNM_CLIN_Tc4A         NA         NA        NA        NA
TNM_CLIN_Tc4B         NA         NA        NA        NA
TNM_CLIN_Tc4C         NA         NA        NA        NA
TNM_CLIN_Tc4D         NA         NA        NA        NA
TNM_CLIN_TcX      0.9284     1.0771    0.4144      2.08
TNM_CLIN_TpA          NA         NA        NA        NA
TNM_CLIN_TpIS         NA         NA        NA        NA

Concordance= 0.503  (se = 0.003 )
Rsquare= 0.001   (max possible= 0.999 )
Likelihood ratio test= 0.77  on 2 df,   p=0.6788
Wald test            = 1.04  on 2 df,   p=0.5946
Score (logrank) test = 1.13  on 2 df,   p=0.569
Removed 20 rows containing missing values (geom_errorbar).



   
## Unadjusted Kaplan Meier Overall Survival Curve for:  TNM_CLIN_T

Clinical N Stage

uni_var(test_var = "TNM_CLIN_N", data_imp = data)
_________________________________________________
   
## TNM_CLIN_N
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ TNM_CLIN_N, data = data)

   22 observations deleted due to missingness 
                 n events median 0.95LCL 0.95UCL
TNM_CLIN_N=N_A 740    398   27.9    24.0    38.5
TNM_CLIN_N=c0    1      1   10.4      NA      NA
TNM_CLIN_N=cX    9      6   65.0    18.7      NA

Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ TNM_CLIN_N, data = data)

22 observations deleted due to missingness 
                TNM_CLIN_N=N_A 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    448     242    0.660  0.0178        0.626        0.696
   24    341      82    0.535  0.0190        0.499        0.574
   36    270      40    0.471  0.0193        0.434        0.510
   48    229      11    0.451  0.0194        0.414        0.490
   60    204       5    0.440  0.0195        0.404        0.480
  120     61      17    0.391  0.0209        0.352        0.434

                TNM_CLIN_N=c0 
     time n.risk n.event survival std.err lower 95% CI upper 95% CI

                TNM_CLIN_N=cX 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12      8       1    0.889   0.105        0.706        1.000
   24      6       2    0.667   0.157        0.420        1.000
   36      6       0    0.667   0.157        0.420        1.000
   48      5       1    0.556   0.166        0.310        0.997
   60      5       0    0.556   0.166        0.310        0.997
  120      2       2    0.333   0.157        0.132        0.840




   
## Univariable Cox Proportional Hazard Model for:  TNM_CLIN_N
X matrix deemed to be singular; variable 2 3 4 5 6 7 8 9 10 11 12
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ TNM_CLIN_N, data = data)

  n= 750, number of events= 405 
   (22 observations deleted due to missingness)

                  coef exp(coef) se(coef)      z Pr(>|z|)
TNM_CLIN_Nc0   1.00498   2.73184  1.00230  1.003    0.316
TNM_CLIN_Nc1        NA        NA  0.00000     NA       NA
TNM_CLIN_Nc1A       NA        NA  0.00000     NA       NA
TNM_CLIN_Nc1B       NA        NA  0.00000     NA       NA
TNM_CLIN_Nc2        NA        NA  0.00000     NA       NA
TNM_CLIN_Nc2A       NA        NA  0.00000     NA       NA
TNM_CLIN_Nc2B       NA        NA  0.00000     NA       NA
TNM_CLIN_Nc2C       NA        NA  0.00000     NA       NA
TNM_CLIN_Nc3        NA        NA  0.00000     NA       NA
TNM_CLIN_Nc3A       NA        NA  0.00000     NA       NA
TNM_CLIN_Nc3B       NA        NA  0.00000     NA       NA
TNM_CLIN_Nc3C       NA        NA  0.00000     NA       NA
TNM_CLIN_NcX  -0.07431   0.92839  0.41150 -0.181    0.857

              exp(coef) exp(-coef) lower .95 upper .95
TNM_CLIN_Nc0     2.7318     0.3661    0.3831     19.48
TNM_CLIN_Nc1         NA         NA        NA        NA
TNM_CLIN_Nc1A        NA         NA        NA        NA
TNM_CLIN_Nc1B        NA         NA        NA        NA
TNM_CLIN_Nc2         NA         NA        NA        NA
TNM_CLIN_Nc2A        NA         NA        NA        NA
TNM_CLIN_Nc2B        NA         NA        NA        NA
TNM_CLIN_Nc2C        NA         NA        NA        NA
TNM_CLIN_Nc3         NA         NA        NA        NA
TNM_CLIN_Nc3A        NA         NA        NA        NA
TNM_CLIN_Nc3B        NA         NA        NA        NA
TNM_CLIN_Nc3C        NA         NA        NA        NA
TNM_CLIN_NcX     0.9284     1.0771    0.4144      2.08

Concordance= 0.503  (se = 0.003 )
Rsquare= 0.001   (max possible= 0.999 )
Likelihood ratio test= 0.77  on 2 df,   p=0.6788
Wald test            = 1.04  on 2 df,   p=0.5946
Score (logrank) test = 1.13  on 2 df,   p=0.569
Removed 12 rows containing missing values (geom_errorbar).



   
## Unadjusted Kaplan Meier Overall Survival Curve for:  TNM_CLIN_N

Clinical Stage Group

uni_var(test_var = "TNM_CLIN_STAGE_GROUP", data_imp = data)
_________________________________________________
   
## TNM_CLIN_STAGE_GROUP
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ TNM_CLIN_STAGE_GROUP, data = data)

                           n events median 0.95LCL 0.95UCL
TNM_CLIN_STAGE_GROUP=1    47     21  106.2   23.59      NA
TNM_CLIN_STAGE_GROUP=1A   38     18   70.3   29.80      NA
TNM_CLIN_STAGE_GROUP=1B   16      9   39.9   12.29      NA
TNM_CLIN_STAGE_GROUP=2    56     21     NA   73.82      NA
TNM_CLIN_STAGE_GROUP=2A   27      7     NA   26.81      NA
TNM_CLIN_STAGE_GROUP=2B   18     11   14.3    7.10      NA
TNM_CLIN_STAGE_GROUP=3    33     14     NA   13.57      NA
TNM_CLIN_STAGE_GROUP=3A   29     16   28.6   11.96      NA
TNM_CLIN_STAGE_GROUP=3B   22     13   28.2   14.49      NA
TNM_CLIN_STAGE_GROUP=4   158    102   18.0   12.52    24.5
TNM_CLIN_STAGE_GROUP=4A   84     56   14.8   11.89    40.4
TNM_CLIN_STAGE_GROUP=4B   84     57   11.4    7.52    24.5
TNM_CLIN_STAGE_GROUP=N_A   7      3    2.3    2.30      NA
TNM_CLIN_STAGE_GROUP=99  153     69   61.9   32.92      NA

Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ TNM_CLIN_STAGE_GROUP, data = data)

                TNM_CLIN_STAGE_GROUP=1 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     30      14    0.698  0.0676        0.577        0.844
   24     23       3    0.620  0.0736        0.491        0.782
   36     20       2    0.564  0.0769        0.431        0.736
   48     20       0    0.564  0.0769        0.431        0.736
   60     17       1    0.532  0.0788        0.398        0.711
  120      5       1    0.473  0.0895        0.326        0.685

                TNM_CLIN_STAGE_GROUP=1A 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     33       4    0.892  0.0510        0.797        0.998
   24     25       7    0.703  0.0751        0.570        0.867
   36     21       3    0.618  0.0804        0.479        0.798
   48     16       2    0.553  0.0841        0.411        0.745
   60     15       0    0.553  0.0841        0.411        0.745
  120      8       2    0.474  0.0887        0.329        0.684

                TNM_CLIN_STAGE_GROUP=1B 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     12       4    0.750   0.108        0.565        0.995
   24      8       3    0.562   0.124        0.365        0.867
   36      7       0    0.562   0.124        0.365        0.867
   48      5       1    0.469   0.134        0.267        0.821
   60      5       0    0.469   0.134        0.267        0.821
  120      2       1    0.375   0.136        0.184        0.764

                TNM_CLIN_STAGE_GROUP=2 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     41      10    0.810  0.0542        0.711        0.924
   24     32       7    0.668  0.0663        0.550        0.811
   36     27       2    0.626  0.0684        0.505        0.775
   48     24       0    0.626  0.0684        0.505        0.775
   60     23       0    0.626  0.0684        0.505        0.775
  120      7       2    0.546  0.0808        0.409        0.730

                TNM_CLIN_STAGE_GROUP=2A 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     18       3    0.878  0.0664        0.757        1.000
   24     13       3    0.716  0.1004        0.544        0.943
   36     10       1    0.657  0.1084        0.475        0.907
   48     10       0    0.657  0.1084        0.475        0.907
   60     10       0    0.657  0.1084        0.475        0.907
  120      2       0    0.657  0.1084        0.475        0.907

                TNM_CLIN_STAGE_GROUP=2B 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12      8       7    0.549   0.128       0.3478        0.867
   24      7       1    0.480   0.129       0.2838        0.813
   36      6       1    0.412   0.128       0.2244        0.756
   48      5       0    0.412   0.128       0.2244        0.756
   60      4       1    0.329   0.126       0.1558        0.696
  120      1       1    0.165   0.132       0.0341        0.796

                TNM_CLIN_STAGE_GROUP=3 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     21      11    0.661  0.0833        0.516        0.846
   24     19       2    0.598  0.0864        0.450        0.794
   36     15       1    0.563  0.0882        0.414        0.765
   48     13       0    0.563  0.0882        0.414        0.765
   60     12       0    0.563  0.0882        0.414        0.765
  120      4       0    0.563  0.0882        0.414        0.765

                TNM_CLIN_STAGE_GROUP=3A 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     18      11    0.621  0.0901        0.467        0.825
   24     13       3    0.506  0.0947        0.351        0.731
   36     11       1    0.464  0.0958        0.310        0.695
   48      9       0    0.464  0.0958        0.310        0.695
   60      8       0    0.464  0.0958        0.310        0.695
  120      1       1    0.406  0.0998        0.251        0.657

                TNM_CLIN_STAGE_GROUP=3B 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     16       6    0.727   0.095        0.563        0.939
   24     10       3    0.577   0.108        0.399        0.833
   36      7       3    0.404   0.113        0.234        0.698
   48      6       1    0.346   0.110        0.185        0.647
   60      5       0    0.346   0.110        0.185        0.647
  120      1       0    0.346   0.110        0.185        0.647

                TNM_CLIN_STAGE_GROUP=4 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     86      64    0.586  0.0397        0.513        0.669
   24     61      21    0.440  0.0406        0.367        0.528
   36     46       9    0.375  0.0400        0.304        0.462
   48     42       2    0.358  0.0399        0.288        0.446
   60     38       0    0.358  0.0399        0.288        0.446
  120     10       5    0.296  0.0421        0.224        0.391

                TNM_CLIN_STAGE_GROUP=4A 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     47      34    0.582  0.0548        0.484        0.700
   24     32      12    0.428  0.0555        0.332        0.552
   36     23       3    0.387  0.0550        0.293        0.511
   48     17       3    0.334  0.0554        0.241        0.462
   60     11       2    0.294  0.0556        0.202        0.426
  120      2       2    0.235  0.0580        0.145        0.381

                TNM_CLIN_STAGE_GROUP=4B 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     36      43    0.467  0.0558        0.369        0.590
   24     30       5    0.400  0.0552        0.305        0.524
   36     20       7    0.303  0.0527        0.216        0.426
   48     12       1    0.288  0.0522        0.202        0.411
   60      9       0    0.288  0.0522        0.202        0.411
  120      2       1    0.247  0.0588        0.155        0.394

                TNM_CLIN_STAGE_GROUP=N_A 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12      2       3      0.5   0.204        0.225            1
   24      2       0      0.5   0.204        0.225            1
   36      2       0      0.5   0.204        0.225            1
   48      1       0      0.5   0.204        0.225            1

                TNM_CLIN_STAGE_GROUP=99 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     99      39    0.731  0.0369        0.662        0.807
   24     81      15    0.618  0.0411        0.543        0.704
   36     65       9    0.547  0.0427        0.469        0.638
   48     56       2    0.529  0.0432        0.451        0.621
   60     53       1    0.520  0.0434        0.441        0.612
  120     18       3    0.483  0.0457        0.401        0.581




   
## Univariable Cox Proportional Hazard Model for:  TNM_CLIN_STAGE_GROUP
X matrix deemed to be singular; variable 4 8 12 16 18
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ TNM_CLIN_STAGE_GROUP, data = data)

  n= 772, number of events= 417 

                            coef exp(coef) se(coef)      z Pr(>|z|)    
TNM_CLIN_STAGE_GROUP1   -0.02485   0.97546  0.24923 -0.100 0.920592    
TNM_CLIN_STAGE_GROUP1A  -0.13231   0.87607  0.26473 -0.500 0.617215    
TNM_CLIN_STAGE_GROUP1B   0.24014   1.27143  0.35444  0.678 0.498081    
TNM_CLIN_STAGE_GROUP1C        NA        NA  0.00000     NA       NA    
TNM_CLIN_STAGE_GROUP2   -0.26671   0.76589  0.24925 -1.070 0.284594    
TNM_CLIN_STAGE_GROUP2A  -0.58371   0.55783  0.39670 -1.471 0.141186    
TNM_CLIN_STAGE_GROUP2B   0.54860   1.73082  0.32478  1.689 0.091193 .  
TNM_CLIN_STAGE_GROUP2C        NA        NA  0.00000     NA       NA    
TNM_CLIN_STAGE_GROUP3   -0.08515   0.91837  0.29318 -0.290 0.771476    
TNM_CLIN_STAGE_GROUP3A   0.21823   1.24388  0.27752  0.786 0.431657    
TNM_CLIN_STAGE_GROUP3B   0.32865   1.38910  0.30250  1.086 0.277268    
TNM_CLIN_STAGE_GROUP3C        NA        NA  0.00000     NA       NA    
TNM_CLIN_STAGE_GROUP4    0.53375   1.70531  0.15602  3.421 0.000624 ***
TNM_CLIN_STAGE_GROUP4A   0.59240   1.80832  0.18032  3.285 0.001019 ** 
TNM_CLIN_STAGE_GROUP4B   0.72119   2.05688  0.17951  4.018 5.88e-05 ***
TNM_CLIN_STAGE_GROUP4C        NA        NA  0.00000     NA       NA    
TNM_CLIN_STAGE_GROUPN_A  0.50378   1.65497  0.59011  0.854 0.393269    
TNM_CLIN_STAGE_GROUP99        NA        NA  0.00000     NA       NA    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

                        exp(coef) exp(-coef) lower .95 upper .95
TNM_CLIN_STAGE_GROUP1      0.9755     1.0252    0.5985     1.590
TNM_CLIN_STAGE_GROUP1A     0.8761     1.1415    0.5214     1.472
TNM_CLIN_STAGE_GROUP1B     1.2714     0.7865    0.6347     2.547
TNM_CLIN_STAGE_GROUP1C         NA         NA        NA        NA
TNM_CLIN_STAGE_GROUP2      0.7659     1.3057    0.4699     1.248
TNM_CLIN_STAGE_GROUP2A     0.5578     1.7927    0.2563     1.214
TNM_CLIN_STAGE_GROUP2B     1.7308     0.5778    0.9158     3.271
TNM_CLIN_STAGE_GROUP2C         NA         NA        NA        NA
TNM_CLIN_STAGE_GROUP3      0.9184     1.0889    0.5170     1.631
TNM_CLIN_STAGE_GROUP3A     1.2439     0.8039    0.7220     2.143
TNM_CLIN_STAGE_GROUP3B     1.3891     0.7199    0.7678     2.513
TNM_CLIN_STAGE_GROUP3C         NA         NA        NA        NA
TNM_CLIN_STAGE_GROUP4      1.7053     0.5864    1.2560     2.315
TNM_CLIN_STAGE_GROUP4A     1.8083     0.5530    1.2699     2.575
TNM_CLIN_STAGE_GROUP4B     2.0569     0.4862    1.4468     2.924
TNM_CLIN_STAGE_GROUP4C         NA         NA        NA        NA
TNM_CLIN_STAGE_GROUPN_A    1.6550     0.6042    0.5206     5.261
TNM_CLIN_STAGE_GROUP99         NA         NA        NA        NA

Concordance= 0.596  (se = 0.015 )
Rsquare= 0.062   (max possible= 0.999 )
Likelihood ratio test= 49.33  on 13 df,   p=3.877e-06
Wald test            = 46.86  on 13 df,   p=1.019e-05
Score (logrank) test = 49.12  on 13 df,   p=4.214e-06
Removed 6 rows containing missing values (geom_errorbar).



   
## Unadjusted Kaplan Meier Overall Survival Curve for:  TNM_CLIN_STAGE_GROUP
This manual palette can handle a maximum of 10 values. You have supplied 14.

Pathologic T Stage

uni_var(test_var = "TNM_PATH_T", data_imp = data)
_________________________________________________
   
## TNM_PATH_T
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ TNM_PATH_T, data = data)

   29 observations deleted due to missingness 
                 n events median 0.95LCL 0.95UCL
TNM_PATH_T=N_A 733    393   28.2    24.2    38.9
TNM_PATH_T=p2    1      1   10.4      NA      NA
TNM_PATH_T=pX    9      6   65.0    18.7      NA

Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ TNM_PATH_T, data = data)

29 observations deleted due to missingness 
                TNM_PATH_T=N_A 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    446     237    0.664  0.0179        0.629        0.699
   24    340      82    0.538  0.0191        0.502        0.577
   36    270      40    0.473  0.0194        0.436        0.512
   48    229      11    0.453  0.0195        0.416        0.493
   60    204       5    0.442  0.0196        0.406        0.483
  120     61      17    0.393  0.0210        0.354        0.436

                TNM_PATH_T=p2 
     time n.risk n.event survival std.err lower 95% CI upper 95% CI

                TNM_PATH_T=pX 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12      8       1    0.889   0.105        0.706        1.000
   24      6       2    0.667   0.157        0.420        1.000
   36      6       0    0.667   0.157        0.420        1.000
   48      5       1    0.556   0.166        0.310        0.997
   60      5       0    0.556   0.166        0.310        0.997
  120      2       2    0.333   0.157        0.132        0.840




   
## Univariable Cox Proportional Hazard Model for:  TNM_PATH_T
X matrix deemed to be singular; variable 1 2 3 4 5 6 8 9 10 11 12 13 14 15 16 17 18 19
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ TNM_PATH_T, data = data)

  n= 743, number of events= 400 
   (29 observations deleted due to missingness)

                   coef exp(coef) se(coef)      z Pr(>|z|)
TNM_PATH_Tp0         NA        NA  0.00000     NA       NA
TNM_PATH_Tp1         NA        NA  0.00000     NA       NA
TNM_PATH_Tp1A        NA        NA  0.00000     NA       NA
TNM_PATH_Tp1B        NA        NA  0.00000     NA       NA
TNM_PATH_Tp1C        NA        NA  0.00000     NA       NA
TNM_PATH_Tp1MI       NA        NA  0.00000     NA       NA
TNM_PATH_Tp2    1.01536   2.76035  1.00234  1.013    0.311
TNM_PATH_Tp2A        NA        NA  0.00000     NA       NA
TNM_PATH_Tp2B        NA        NA  0.00000     NA       NA
TNM_PATH_Tp3         NA        NA  0.00000     NA       NA
TNM_PATH_Tp3A        NA        NA  0.00000     NA       NA
TNM_PATH_Tp3B        NA        NA  0.00000     NA       NA
TNM_PATH_Tp4         NA        NA  0.00000     NA       NA
TNM_PATH_Tp4A        NA        NA  0.00000     NA       NA
TNM_PATH_Tp4B        NA        NA  0.00000     NA       NA
TNM_PATH_Tp4C        NA        NA  0.00000     NA       NA
TNM_PATH_Tp4D        NA        NA  0.00000     NA       NA
TNM_PATH_TpA         NA        NA  0.00000     NA       NA
TNM_PATH_TpIS        NA        NA  0.00000     NA       NA
TNM_PATH_TpX   -0.06852   0.93378  0.41154 -0.166    0.868

               exp(coef) exp(-coef) lower .95 upper .95
TNM_PATH_Tp0          NA         NA        NA        NA
TNM_PATH_Tp1          NA         NA        NA        NA
TNM_PATH_Tp1A         NA         NA        NA        NA
TNM_PATH_Tp1B         NA         NA        NA        NA
TNM_PATH_Tp1C         NA         NA        NA        NA
TNM_PATH_Tp1MI        NA         NA        NA        NA
TNM_PATH_Tp2      2.7604     0.3623    0.3871    19.686
TNM_PATH_Tp2A         NA         NA        NA        NA
TNM_PATH_Tp2B         NA         NA        NA        NA
TNM_PATH_Tp3          NA         NA        NA        NA
TNM_PATH_Tp3A         NA         NA        NA        NA
TNM_PATH_Tp3B         NA         NA        NA        NA
TNM_PATH_Tp4          NA         NA        NA        NA
TNM_PATH_Tp4A         NA         NA        NA        NA
TNM_PATH_Tp4B         NA         NA        NA        NA
TNM_PATH_Tp4C         NA         NA        NA        NA
TNM_PATH_Tp4D         NA         NA        NA        NA
TNM_PATH_TpA          NA         NA        NA        NA
TNM_PATH_TpIS         NA         NA        NA        NA
TNM_PATH_TpX      0.9338     1.0709    0.4168     2.092

Concordance= 0.503  (se = 0.003 )
Rsquare= 0.001   (max possible= 0.999 )
Likelihood ratio test= 0.78  on 2 df,   p=0.6761
Wald test            = 1.06  on 2 df,   p=0.5899
Score (logrank) test = 1.15  on 2 df,   p=0.5635
Removed 19 rows containing missing values (geom_errorbar).



   
## Unadjusted Kaplan Meier Overall Survival Curve for:  TNM_PATH_T

Pathologic N Stage

uni_var(test_var = "TNM_PATH_N", data_imp = data)
_________________________________________________
   
## TNM_PATH_N
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ TNM_PATH_N, data = data)

   29 observations deleted due to missingness 
                 n events median 0.95LCL 0.95UCL
TNM_PATH_N=N_A 733    393   28.2    24.2    38.9
TNM_PATH_N=pX   10      7   53.2    14.7      NA

Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ TNM_PATH_N, data = data)

29 observations deleted due to missingness 
                TNM_PATH_N=N_A 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    446     237    0.664  0.0179        0.629        0.699
   24    340      82    0.538  0.0191        0.502        0.577
   36    270      40    0.473  0.0194        0.436        0.512
   48    229      11    0.453  0.0195        0.416        0.493
   60    204       5    0.442  0.0196        0.406        0.483
  120     61      17    0.393  0.0210        0.354        0.436

                TNM_PATH_N=pX 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12      8       2      0.8   0.126        0.587        1.000
   24      6       2      0.6   0.155        0.362        0.995
   36      6       0      0.6   0.155        0.362        0.995
   48      5       1      0.5   0.158        0.269        0.929
   60      5       0      0.5   0.158        0.269        0.929
  120      2       2      0.3   0.145        0.116        0.773




   
## Univariable Cox Proportional Hazard Model for:  TNM_PATH_N
X matrix deemed to be singular; variable 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ TNM_PATH_N, data = data)

  n= 743, number of events= 400 
   (29 observations deleted due to missingness)

                  coef exp(coef) se(coef)     z Pr(>|z|)
TNM_PATH_Np0        NA        NA  0.00000    NA       NA
TNM_PATH_Np0I-      NA        NA  0.00000    NA       NA
TNM_PATH_Np0I+      NA        NA  0.00000    NA       NA
TNM_PATH_Np0M-      NA        NA  0.00000    NA       NA
TNM_PATH_Np0M+      NA        NA  0.00000    NA       NA
TNM_PATH_Np1        NA        NA  0.00000    NA       NA
TNM_PATH_Np1A       NA        NA  0.00000    NA       NA
TNM_PATH_Np1B       NA        NA  0.00000    NA       NA
TNM_PATH_Np1C       NA        NA  0.00000    NA       NA
TNM_PATH_Np1MI      NA        NA  0.00000    NA       NA
TNM_PATH_Np2        NA        NA  0.00000    NA       NA
TNM_PATH_Np2A       NA        NA  0.00000    NA       NA
TNM_PATH_Np2B       NA        NA  0.00000    NA       NA
TNM_PATH_Np2C       NA        NA  0.00000    NA       NA
TNM_PATH_Np3        NA        NA  0.00000    NA       NA
TNM_PATH_Np3A       NA        NA  0.00000    NA       NA
TNM_PATH_Np3B       NA        NA  0.00000    NA       NA
TNM_PATH_Np3C       NA        NA  0.00000    NA       NA
TNM_PATH_NpX   0.03101   1.03150  0.38145 0.081    0.935

               exp(coef) exp(-coef) lower .95 upper .95
TNM_PATH_Np0          NA         NA        NA        NA
TNM_PATH_Np0I-        NA         NA        NA        NA
TNM_PATH_Np0I+        NA         NA        NA        NA
TNM_PATH_Np0M-        NA         NA        NA        NA
TNM_PATH_Np0M+        NA         NA        NA        NA
TNM_PATH_Np1          NA         NA        NA        NA
TNM_PATH_Np1A         NA         NA        NA        NA
TNM_PATH_Np1B         NA         NA        NA        NA
TNM_PATH_Np1C         NA         NA        NA        NA
TNM_PATH_Np1MI        NA         NA        NA        NA
TNM_PATH_Np2          NA         NA        NA        NA
TNM_PATH_Np2A         NA         NA        NA        NA
TNM_PATH_Np2B         NA         NA        NA        NA
TNM_PATH_Np2C         NA         NA        NA        NA
TNM_PATH_Np3          NA         NA        NA        NA
TNM_PATH_Np3A         NA         NA        NA        NA
TNM_PATH_Np3B         NA         NA        NA        NA
TNM_PATH_Np3C         NA         NA        NA        NA
TNM_PATH_NpX       1.032     0.9695    0.4884     2.179

Concordance= 0.499  (se = 0.003 )
Rsquare= 0   (max possible= 0.999 )
Likelihood ratio test= 0.01  on 1 df,   p=0.9355
Wald test            = 0.01  on 1 df,   p=0.9352
Score (logrank) test = 0.01  on 1 df,   p=0.9352
Removed 19 rows containing missing values (geom_errorbar).



   
## Unadjusted Kaplan Meier Overall Survival Curve for:  TNM_PATH_N

Pathologic M Stage

uni_var(test_var = "TNM_PATH_M", data_imp = data)
_________________________________________________
   
## TNM_PATH_M
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ TNM_PATH_M, data = data)

   44 observations deleted due to missingness 
                 n events median 0.95LCL 0.95UCL
TNM_PATH_M=N_A 718    382   28.4    24.2    39.9
TNM_PATH_M=pX   10      7   53.2    14.7      NA

Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ TNM_PATH_M, data = data)

44 observations deleted due to missingness 
                TNM_PATH_M=N_A 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    435     233    0.662  0.0181        0.627        0.698
   24    334      79    0.538  0.0193        0.502        0.578
   36    265      39    0.474  0.0196        0.437        0.514
   48    228       9    0.457  0.0197        0.420        0.497
   60    204       4    0.449  0.0198        0.411        0.489
  120     61      17    0.398  0.0212        0.359        0.442

                TNM_PATH_M=pX 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12      8       2      0.8   0.126        0.587        1.000
   24      6       2      0.6   0.155        0.362        0.995
   36      6       0      0.6   0.155        0.362        0.995
   48      5       1      0.5   0.158        0.269        0.929
   60      5       0      0.5   0.158        0.269        0.929
  120      2       2      0.3   0.145        0.116        0.773




   
## Univariable Cox Proportional Hazard Model for:  TNM_PATH_M
X matrix deemed to be singular; variable 1 2 3 4
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ TNM_PATH_M, data = data)

  n= 728, number of events= 389 
   (44 observations deleted due to missingness)

                 coef exp(coef) se(coef)     z Pr(>|z|)
TNM_PATH_Mp1       NA        NA  0.00000    NA       NA
TNM_PATH_Mp1A      NA        NA  0.00000    NA       NA
TNM_PATH_Mp1B      NA        NA  0.00000    NA       NA
TNM_PATH_Mp1C      NA        NA  0.00000    NA       NA
TNM_PATH_MpX  0.04218   1.04308  0.38154 0.111    0.912

              exp(coef) exp(-coef) lower .95 upper .95
TNM_PATH_Mp1         NA         NA        NA        NA
TNM_PATH_Mp1A        NA         NA        NA        NA
TNM_PATH_Mp1B        NA         NA        NA        NA
TNM_PATH_Mp1C        NA         NA        NA        NA
TNM_PATH_MpX      1.043     0.9587    0.4938     2.203

Concordance= 0.499  (se = 0.003 )
Rsquare= 0   (max possible= 0.999 )
Likelihood ratio test= 0.01  on 1 df,   p=0.9126
Wald test            = 0.01  on 1 df,   p=0.912
Score (logrank) test = 0.01  on 1 df,   p=0.912
Removed 5 rows containing missing values (geom_errorbar).



   
## Unadjusted Kaplan Meier Overall Survival Curve for:  TNM_PATH_M

Pathologic Stage Group

uni_var(test_var = "TNM_PATH_STAGE_GROUP", data_imp = data)
_________________________________________________
   
## TNM_PATH_STAGE_GROUP
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ TNM_PATH_STAGE_GROUP, data = data)

   44 observations deleted due to missingness 
                           n events median 0.95LCL 0.95UCL
TNM_PATH_STAGE_GROUP=1    29     16   24.0    8.67      NA
TNM_PATH_STAGE_GROUP=1A   16      5     NA   70.34      NA
TNM_PATH_STAGE_GROUP=1B    6      3   18.1   17.38      NA
TNM_PATH_STAGE_GROUP=2    27     12     NA   23.56      NA
TNM_PATH_STAGE_GROUP=2A    6      4   13.1   11.89      NA
TNM_PATH_STAGE_GROUP=2B    7      4   97.3    7.10      NA
TNM_PATH_STAGE_GROUP=3    13      4     NA   20.73      NA
TNM_PATH_STAGE_GROUP=3A    6      2     NA   10.05      NA
TNM_PATH_STAGE_GROUP=3B    4      2   25.0    9.59      NA
TNM_PATH_STAGE_GROUP=4    75     49   16.6    8.48    27.0
TNM_PATH_STAGE_GROUP=4A   26     17   41.4   12.00      NA
TNM_PATH_STAGE_GROUP=4B   32     20    6.7    4.50      NA
TNM_PATH_STAGE_GROUP=N_A   7      3    2.3    2.30      NA
TNM_PATH_STAGE_GROUP=99  474    251   31.0   24.34    51.3

Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ TNM_PATH_STAGE_GROUP, data = data)

44 observations deleted due to missingness 
                TNM_PATH_STAGE_GROUP=1 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     16      11    0.612  0.0920        0.456        0.822
   24     11       3    0.485  0.0980        0.327        0.721
   36     10       1    0.441  0.0985        0.285        0.684
   48     10       0    0.441  0.0985        0.285        0.684
   60      8       1    0.392  0.0990        0.239        0.643
  120      2       0    0.392  0.0990        0.239        0.643

                TNM_PATH_STAGE_GROUP=1A 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     14       2    0.875  0.0827        0.727        1.000
   24     13       1    0.812  0.0976        0.642        1.000
   36     11       1    0.745  0.1105        0.557        0.996
   48      9       0    0.745  0.1105        0.557        0.996
   60      8       0    0.745  0.1105        0.557        0.996
  120      3       1    0.638  0.1366        0.420        0.971

                TNM_PATH_STAGE_GROUP=1B 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12      5       1    0.833   0.152        0.583            1
   24      3       2    0.500   0.204        0.225            1
   36      3       0    0.500   0.204        0.225            1
   48      3       0    0.500   0.204        0.225            1
   60      3       0    0.500   0.204        0.225            1
  120      1       0    0.500   0.204        0.225            1

                TNM_PATH_STAGE_GROUP=2 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     20       6    0.773  0.0816        0.628        0.951
   24     17       3    0.657  0.0929        0.498        0.867
   36     16       1    0.618  0.0951        0.457        0.836
   48     13       1    0.577  0.0973        0.415        0.803
   60     13       0    0.577  0.0973        0.415        0.803
  120      5       1    0.529  0.1004        0.365        0.767

                TNM_PATH_STAGE_GROUP=2A 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12      4       2    0.667   0.192       0.3786            1
   24      2       1    0.444   0.222       0.1668            1
   36      1       1    0.222   0.192       0.0407            1
   48      1       0    0.222   0.192       0.0407            1
   60      1       0    0.222   0.192       0.0407            1

                TNM_PATH_STAGE_GROUP=2B 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12      5       2    0.714   0.171        0.447            1
   24      5       0    0.714   0.171        0.447            1
   36      5       0    0.714   0.171        0.447            1
   48      4       0    0.714   0.171        0.447            1
   60      4       0    0.714   0.171        0.447            1

                TNM_PATH_STAGE_GROUP=3 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12      9       3    0.755   0.123        0.549        1.000
   24      8       1    0.671   0.135        0.453        0.996
   36      6       0    0.671   0.135        0.453        0.996
   48      6       0    0.671   0.135        0.453        0.996
   60      5       0    0.671   0.135        0.453        0.996

                TNM_PATH_STAGE_GROUP=3A 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12      2       2    0.556   0.248        0.231            1
   24      2       0    0.556   0.248        0.231            1
   36      2       0    0.556   0.248        0.231            1
   48      1       0    0.556   0.248        0.231            1
   60      1       0    0.556   0.248        0.231            1

                TNM_PATH_STAGE_GROUP=3B 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12      3       1    0.750   0.217       0.4259            1
   24      2       0    0.750   0.217       0.4259            1
   36      1       1    0.375   0.286       0.0839            1
   48      1       0    0.375   0.286       0.0839            1
   60      1       0    0.375   0.286       0.0839            1

                TNM_PATH_STAGE_GROUP=4 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     35      32    0.550  0.0594        0.445        0.680
   24     25       9    0.405  0.0603        0.302        0.542
   36     20       4    0.340  0.0587        0.242        0.477
   48     19       0    0.340  0.0587        0.242        0.477
   60     18       0    0.340  0.0587        0.242        0.477
  120      4       4    0.234  0.0619        0.139        0.393

                TNM_PATH_STAGE_GROUP=4A 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     17       9    0.641  0.0959        0.478        0.859
   24     16       0    0.641  0.0959        0.478        0.859
   36     13       3    0.521  0.0999        0.358        0.759
   48     10       1    0.477  0.1006        0.316        0.721
   60      7       2    0.382  0.1006        0.228        0.640
  120      3       2    0.273  0.0970        0.136        0.548

                TNM_PATH_STAGE_GROUP=4B 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     12      18    0.420  0.0894        0.277        0.638
   24     10       1    0.382  0.0891        0.242        0.603
   36      6       1    0.344  0.0880        0.208        0.568
   48      3       0    0.344  0.0880        0.208        0.568
   60      2       0    0.344  0.0880        0.208        0.568
  120      1       0    0.344  0.0880        0.208        0.568

                TNM_PATH_STAGE_GROUP=N_A 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12      2       3      0.5   0.204        0.225            1
   24      2       0      0.5   0.204        0.225            1
   36      2       0      0.5   0.204        0.225            1
   48      1       0      0.5   0.204        0.225            1

                TNM_PATH_STAGE_GROUP=99 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    302     142    0.688  0.0217        0.647        0.732
   24    227      60    0.548  0.0237        0.504        0.597
   36    176      28    0.478  0.0241        0.433        0.528
   48    151       9    0.453  0.0242        0.408        0.503
   60    137       2    0.447  0.0243        0.401        0.497
  120     44       9    0.409  0.0254        0.362        0.462




   
## Univariable Cox Proportional Hazard Model for:  TNM_PATH_STAGE_GROUP
X matrix deemed to be singular; variable 4 8 12 16 18
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ TNM_PATH_STAGE_GROUP, data = data)

  n= 728, number of events= 392 
   (44 observations deleted due to missingness)

                            coef exp(coef) se(coef)      z Pr(>|z|)  
TNM_PATH_STAGE_GROUP1    0.09721   1.10209  0.25790  0.377   0.7062  
TNM_PATH_STAGE_GROUP1A  -0.85266   0.42628  0.45174 -1.887   0.0591 .
TNM_PATH_STAGE_GROUP1B  -0.21898   0.80333  0.58089 -0.377   0.7062  
TNM_PATH_STAGE_GROUP1C        NA        NA  0.00000     NA       NA  
TNM_PATH_STAGE_GROUP2   -0.36992   0.69079  0.29560 -1.251   0.2108  
TNM_PATH_STAGE_GROUP2A   0.28138   1.32496  0.50431  0.558   0.5769  
TNM_PATH_STAGE_GROUP2B  -0.13170   0.87661  0.50414 -0.261   0.7939  
TNM_PATH_STAGE_GROUP2C        NA        NA  0.00000     NA       NA  
TNM_PATH_STAGE_GROUP3   -0.67836   0.50745  0.50401 -1.346   0.1783  
TNM_PATH_STAGE_GROUP3A  -0.20563   0.81413  0.71006 -0.290   0.7721  
TNM_PATH_STAGE_GROUP3B  -0.16854   0.84490  0.71004 -0.237   0.8124  
TNM_PATH_STAGE_GROUP3C        NA        NA  0.00000     NA       NA  
TNM_PATH_STAGE_GROUP4    0.39687   1.48717  0.15643  2.537   0.0112 *
TNM_PATH_STAGE_GROUP4A   0.12497   1.13312  0.25066  0.499   0.6181  
TNM_PATH_STAGE_GROUP4B   0.54656   1.72731  0.23286  2.347   0.0189 *
TNM_PATH_STAGE_GROUP4C        NA        NA  0.00000     NA       NA  
TNM_PATH_STAGE_GROUPN_A  0.29254   1.33982  0.58109  0.503   0.6147  
TNM_PATH_STAGE_GROUP99        NA        NA  0.00000     NA       NA  
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

                        exp(coef) exp(-coef) lower .95 upper .95
TNM_PATH_STAGE_GROUP1      1.1021     0.9074    0.6648     1.827
TNM_PATH_STAGE_GROUP1A     0.4263     2.3459    0.1759     1.033
TNM_PATH_STAGE_GROUP1B     0.8033     1.2448    0.2573     2.508
TNM_PATH_STAGE_GROUP1C         NA         NA        NA        NA
TNM_PATH_STAGE_GROUP2      0.6908     1.4476    0.3870     1.233
TNM_PATH_STAGE_GROUP2A     1.3250     0.7547    0.4931     3.560
TNM_PATH_STAGE_GROUP2B     0.8766     1.1408    0.3263     2.355
TNM_PATH_STAGE_GROUP2C         NA         NA        NA        NA
TNM_PATH_STAGE_GROUP3      0.5074     1.9706    0.1890     1.363
TNM_PATH_STAGE_GROUP3A     0.8141     1.2283    0.2024     3.274
TNM_PATH_STAGE_GROUP3B     0.8449     1.1836    0.2101     3.398
TNM_PATH_STAGE_GROUP3C         NA         NA        NA        NA
TNM_PATH_STAGE_GROUP4      1.4872     0.6724    1.0945     2.021
TNM_PATH_STAGE_GROUP4A     1.1331     0.8825    0.6933     1.852
TNM_PATH_STAGE_GROUP4B     1.7273     0.5789    1.0944     2.726
TNM_PATH_STAGE_GROUP4C         NA         NA        NA        NA
TNM_PATH_STAGE_GROUPN_A    1.3398     0.7464    0.4290     4.185
TNM_PATH_STAGE_GROUP99         NA         NA        NA        NA

Concordance= 0.555  (se = 0.013 )
Rsquare= 0.029   (max possible= 0.999 )
Likelihood ratio test= 21.76  on 13 df,   p=0.05919
Wald test            = 20.69  on 13 df,   p=0.07921
Score (logrank) test = 21.55  on 13 df,   p=0.06274
Removed 6 rows containing missing values (geom_errorbar).



   
## Unadjusted Kaplan Meier Overall Survival Curve for:  TNM_PATH_STAGE_GROUP
This manual palette can handle a maximum of 10 values. You have supplied 14.

Margins

uni_var(test_var = "MARGINS", data_imp = data)
_________________________________________________
   
## MARGINS
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ MARGINS, data = data)

                            n events median 0.95LCL 0.95UCL
MARGINS=No Residual         2      1    9.4     9.4      NA
MARGINS=Residual, NOS       1      0     NA      NA      NA
MARGINS=Macroscopic Resid   2      0     NA      NA      NA
MARGINS=Not evaluable       4      1     NA     4.7      NA
MARGINS=No surg           456    271   21.1    17.0    29.8
MARGINS=Unknown           307    144   43.0    28.4      NA

Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ MARGINS, data = data)

                MARGINS=No Residual 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12      1       1      0.5   0.354        0.125            1
   24      1       0      0.5   0.354        0.125            1

                MARGINS=Residual, NOS 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12      1       0        1       0            1            1
   24      1       0        1       0            1            1
   36      1       0        1       0            1            1
   48      1       0        1       0            1            1
   60      1       0        1       0            1            1

                MARGINS=Macroscopic Resid 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12      2       0        1       0            1            1
   24      2       0        1       0            1            1
   36      2       0        1       0            1            1
   48      2       0        1       0            1            1
   60      2       0        1       0            1            1
  120      1       0        1       0            1            1

                MARGINS=Not evaluable 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12      2       1     0.75   0.217        0.426            1
   24      2       0     0.75   0.217        0.426            1
   36      1       0     0.75   0.217        0.426            1
   48      1       0     0.75   0.217        0.426            1
   60      1       0     0.75   0.217        0.426            1
  120      1       0     0.75   0.217        0.426            1

                MARGINS=No surg 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    261     170    0.615  0.0232        0.571        0.663
   24    191      56    0.479  0.0242        0.434        0.529
   36    158      21    0.425  0.0242        0.380        0.475
   48    139       4    0.414  0.0242        0.369        0.464
   60    132       3    0.405  0.0242        0.360        0.455
  120     48      16    0.346  0.0250        0.300        0.398

                MARGINS=Unknown 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    200      81    0.724  0.0262        0.674        0.777
   24    159      29    0.616  0.0289        0.562        0.675
   36    118      21    0.532  0.0303        0.476        0.595
   48     93       8    0.494  0.0309        0.437        0.558
   60     74       2    0.482  0.0313        0.425        0.548
  120     13       3    0.454  0.0342        0.391        0.526




   
## Univariable Cox Proportional Hazard Model for:  MARGINS
Loglik converged before variable  1,3 ; beta may be infinite. X matrix deemed to be singular; variable 2
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ MARGINS, data = data)

  n= 772, number of events= 417 

                               coef  exp(coef)   se(coef)      z Pr(>|z|)
MARGINSResidual, NOS     -1.494e+01  3.262e-07  1.931e+03 -0.008    0.994
MARGINSMicroscopic Resid         NA         NA  0.000e+00     NA       NA
MARGINSMacroscopic Resid -1.493e+01  3.265e-07  1.344e+03 -0.011    0.991
MARGINSNot evaluable     -7.064e-01  4.934e-01  1.414e+00 -0.499    0.617
MARGINSNo surg            2.037e-01  1.226e+00  1.002e+00  0.203    0.839
MARGINSUnknown           -9.338e-02  9.108e-01  1.004e+00 -0.093    0.926

                         exp(coef) exp(-coef) lower .95 upper .95
MARGINSResidual, NOS     3.262e-07  3.066e+06   0.00000       Inf
MARGINSMicroscopic Resid        NA         NA        NA        NA
MARGINSMacroscopic Resid 3.265e-07  3.063e+06   0.00000       Inf
MARGINSNot evaluable     4.934e-01  2.027e+00   0.03085     7.891
MARGINSNo surg           1.226e+00  8.157e-01   0.17201     8.738
MARGINSUnknown           9.108e-01  1.098e+00   0.12740     6.512

Concordance= 0.54  (se = 0.013 )
Rsquare= 0.019   (max possible= 0.999 )
Likelihood ratio test= 14.83  on 5 df,   p=0.01114
Wald test            = 8.94  on 5 df,   p=0.1116
Score (logrank) test = 11.85  on 5 df,   p=0.03696
Transformation introduced infinite values in continuous y-axisTransformation introduced infinite values in continuous y-axisTransformation introduced infinite values in continuous y-axisRemoved 2 rows containing missing values (geom_errorbar).Removed 7 rows containing missing values (geom_text).Removed 7 rows containing missing values (geom_text).Removed 7 rows containing missing values (geom_text).Removed 7 rows containing missing values (geom_text).Removed 7 rows containing missing values (geom_text).Removed 1 rows containing missing values (geom_text).



   
## Unadjusted Kaplan Meier Overall Survival Curve for:  MARGINS

Margins Yes/No

#uni_var(test_var = "MARGINS_YN", data_imp = data)

30 Day Readmission

uni_var(test_var = "READM_HOSP_30_DAYS_F", data_imp = data)
_________________________________________________
   
## READM_HOSP_30_DAYS_F
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ READM_HOSP_30_DAYS_F, data = data)

                                             n events median 0.95LCL 0.95UCL
READM_HOSP_30_DAYS_F=No_Surg_or_No_Readmit 732    398  27.73   23.59    38.5
READM_HOSP_30_DAYS_F=Unplan_Readmit_Same     8      7   4.65    1.35      NA
READM_HOSP_30_DAYS_F=Plan_Readmit_Same       3      1     NA    2.96      NA
READM_HOSP_30_DAYS_F=PlanUnplan_Same         1      0     NA      NA      NA
READM_HOSP_30_DAYS_F=9                      28     11     NA   26.12      NA

Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ READM_HOSP_30_DAYS_F, data = data)

                READM_HOSP_30_DAYS_F=No_Surg_or_No_Readmit 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    444     239    0.662  0.0179        0.627        0.697
   24    335      83    0.534  0.0191        0.498        0.573
   36    264      40    0.468  0.0194        0.432        0.508
   48    220      12    0.446  0.0195        0.409        0.486
   60    197       4    0.438  0.0196        0.401        0.478
  120     59      19    0.382  0.0212        0.342        0.426

                READM_HOSP_30_DAYS_F=Unplan_Readmit_Same 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12      2       6    0.250   0.153       0.0753        0.830
   24      1       1    0.125   0.117       0.0200        0.782
   36      1       0    0.125   0.117       0.0200        0.782
   48      1       0    0.125   0.117       0.0200        0.782
   60      1       0    0.125   0.117       0.0200        0.782
  120      1       0    0.125   0.117       0.0200        0.782

                READM_HOSP_30_DAYS_F=Plan_Readmit_Same 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12      2       1    0.667   0.272          0.3            1
   24      2       0    0.667   0.272          0.3            1
   36      2       0    0.667   0.272          0.3            1
   48      2       0    0.667   0.272          0.3            1
   60      2       0    0.667   0.272          0.3            1
  120      1       0    0.667   0.272          0.3            1

                READM_HOSP_30_DAYS_F=PlanUnplan_Same 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12      1       0        1       0            1            1
   24      1       0        1       0            1            1

                READM_HOSP_30_DAYS_F=9 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     18       7    0.720  0.0898        0.564        0.919
   24     17       1    0.680  0.0933        0.520        0.890
   36     13       2    0.597  0.0986        0.432        0.826
   48     13       0    0.597  0.0986        0.432        0.826
   60     10       1    0.551  0.1012        0.385        0.790
  120      2       0    0.551  0.1012        0.385        0.790




   
## Univariable Cox Proportional Hazard Model for:  READM_HOSP_30_DAYS_F
Loglik converged before variable  3 ; beta may be infinite. 
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ READM_HOSP_30_DAYS_F, data = data)

  n= 772, number of events= 417 

                                              coef  exp(coef)   se(coef)      z Pr(>|z|)   
READM_HOSP_30_DAYS_FUnplan_Readmit_Same  1.063e+00  2.896e+00  3.819e-01  2.784  0.00537 **
READM_HOSP_30_DAYS_FPlan_Readmit_Same   -7.364e-01  4.788e-01  1.002e+00 -0.735  0.46219   
READM_HOSP_30_DAYS_FPlanUnplan_Same     -1.404e+01  8.012e-07  1.292e+03 -0.011  0.99133   
READM_HOSP_30_DAYS_F9                   -4.195e-01  6.574e-01  3.058e-01 -1.372  0.17011   
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

                                        exp(coef) exp(-coef) lower .95 upper .95
READM_HOSP_30_DAYS_FUnplan_Readmit_Same 2.896e+00  3.453e-01   1.36983     6.121
READM_HOSP_30_DAYS_FPlan_Readmit_Same   4.788e-01  2.088e+00   0.06724     3.410
READM_HOSP_30_DAYS_FPlanUnplan_Same     8.012e-07  1.248e+06   0.00000       Inf
READM_HOSP_30_DAYS_F9                   6.574e-01  1.521e+00   0.36106     1.197

Concordance= 0.514  (se = 0.006 )
Rsquare= 0.013   (max possible= 0.999 )
Likelihood ratio test= 10.11  on 4 df,   p=0.03855
Wald test            = 10.34  on 4 df,   p=0.03502
Score (logrank) test = 11.99  on 4 df,   p=0.01745
Transformation introduced infinite values in continuous y-axisTransformation introduced infinite values in continuous y-axisTransformation introduced infinite values in continuous y-axisRemoved 1 rows containing missing values (geom_errorbar).Removed 5 rows containing missing values (geom_text).Removed 5 rows containing missing values (geom_text).Removed 5 rows containing missing values (geom_text).Removed 5 rows containing missing values (geom_text).Removed 5 rows containing missing values (geom_text).Removed 1 rows containing missing values (geom_text).



   
## Unadjusted Kaplan Meier Overall Survival Curve for:  READM_HOSP_30_DAYS_F

Radiation Type

uni_var(test_var = "RX_SUMM_RADIATION_F", data_imp = data)
_________________________________________________
   
## RX_SUMM_RADIATION_F
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ RX_SUMM_RADIATION_F, data = data)

                                     n events median 0.95LCL 0.95UCL
RX_SUMM_RADIATION_F=None           624    353  26.12    21.5    34.3
RX_SUMM_RADIATION_F=Beam Radiation 142     61     NA    26.6      NA
RX_SUMM_RADIATION_F=Radiation, NOS   1      1   9.89      NA      NA
RX_SUMM_RADIATION_F=Unknown          5      2     NA    34.8      NA

Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ RX_SUMM_RADIATION_F, data = data)

                RX_SUMM_RADIATION_F=None 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    373     209    0.652  0.0195        0.615        0.691
   24    281      71    0.525  0.0207        0.486        0.567
   36    220      38    0.452  0.0209        0.413        0.495
   48    185      12    0.426  0.0210        0.387        0.470
   60    160       5    0.414  0.0211        0.375        0.458
  120     44      17    0.354  0.0230        0.311        0.402

                RX_SUMM_RADIATION_F=Beam Radiation 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     91      42    0.695  0.0394        0.622        0.776
   24     72      14    0.583  0.0429        0.504        0.673
   36     58       3    0.557  0.0436        0.477        0.649
   48     49       0    0.557  0.0436        0.477        0.649
   60     48       0    0.557  0.0436        0.477        0.649
  120     18       2    0.532  0.0449        0.451        0.628

                RX_SUMM_RADIATION_F=Radiation, NOS 
     time n.risk n.event survival std.err lower 95% CI upper 95% CI

                RX_SUMM_RADIATION_F=Unknown 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12      3       1    0.800   0.179        0.516            1
   24      3       0    0.800   0.179        0.516            1
   36      2       1    0.533   0.248        0.214            1
   48      2       0    0.533   0.248        0.214            1
   60      2       0    0.533   0.248        0.214            1
  120      1       0    0.533   0.248        0.214            1




   
## Univariable Cox Proportional Hazard Model for:  RX_SUMM_RADIATION_F
X matrix deemed to be singular; variable 2 3 4
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ RX_SUMM_RADIATION_F, data = data)

  n= 772, number of events= 417 

                                             coef exp(coef) se(coef)      z Pr(>|z|)   
RX_SUMM_RADIATION_FBeam Radiation         -0.3836    0.6814   0.1387 -2.765  0.00569 **
RX_SUMM_RADIATION_FRadioactive Implants        NA        NA   0.0000     NA       NA   
RX_SUMM_RADIATION_FRadioisotopes               NA        NA   0.0000     NA       NA   
RX_SUMM_RADIATION_FBeam + Imp or Isotopes      NA        NA   0.0000     NA       NA   
RX_SUMM_RADIATION_FRadiation, NOS          0.9798    2.6640   1.0025  0.977  0.32837   
RX_SUMM_RADIATION_FUnknown                -0.4440    0.6415   0.7093 -0.626  0.53133   
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

                                          exp(coef) exp(-coef) lower .95 upper .95
RX_SUMM_RADIATION_FBeam Radiation            0.6814     1.4676    0.5192    0.8943
RX_SUMM_RADIATION_FRadioactive Implants          NA         NA        NA        NA
RX_SUMM_RADIATION_FRadioisotopes                 NA         NA        NA        NA
RX_SUMM_RADIATION_FBeam + Imp or Isotopes        NA         NA        NA        NA
RX_SUMM_RADIATION_FRadiation, NOS            2.6640     0.3754    0.3734   19.0049
RX_SUMM_RADIATION_FUnknown                   0.6415     1.5589    0.1598    2.5758

Concordance= 0.526  (se = 0.01 )
Rsquare= 0.012   (max possible= 0.999 )
Likelihood ratio test= 9.47  on 3 df,   p=0.02366
Wald test            = 9.01  on 3 df,   p=0.02911
Score (logrank) test = 9.22  on 3 df,   p=0.02645
Removed 4 rows containing missing values (geom_errorbar).



   
## Unadjusted Kaplan Meier Overall Survival Curve for:  RX_SUMM_RADIATION_F

Lymphovascular Invasion

#uni_var(test_var = "LYMPH_VASCULAR_INVASION_F", data_imp = data)

Endoscopic/Robotic

uni_var(test_var = "RX_HOSP_SURG_APPR_2010_F", data_imp = data)
_________________________________________________
   
## RX_HOSP_SURG_APPR_2010_F
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ RX_HOSP_SURG_APPR_2010_F, data = data)

   456 observations deleted due to missingness 
                                        n events median 0.95LCL 0.95UCL
RX_HOSP_SURG_APPR_2010_F=No_Surg      101     56  16.82    9.53      NA
RX_HOSP_SURG_APPR_2010_F=Endo_Lap       2      1  17.15   17.15      NA
RX_HOSP_SURG_APPR_2010_F=Open_Unknown  12     11   3.25    0.85      NA
RX_HOSP_SURG_APPR_2010_F=Unknown      201     84  55.62   26.81      NA

Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ RX_HOSP_SURG_APPR_2010_F, data = data)

456 observations deleted due to missingness 
                RX_HOSP_SURG_APPR_2010_F=No_Surg 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     49      44    0.543  0.0511        0.452        0.653
   24     34       7    0.457  0.0524        0.365        0.572
   36     23       3    0.414  0.0531        0.322        0.532
   48     11       1    0.392  0.0546        0.298        0.515
   60      9       0    0.392  0.0546        0.298        0.515

                RX_HOSP_SURG_APPR_2010_F=Endo_Lap 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12      2       0      1.0   0.000        1.000            1
   24      1       1      0.5   0.354        0.125            1
   36      1       0      0.5   0.354        0.125            1
   48      1       0      0.5   0.354        0.125            1
   60      1       0      0.5   0.354        0.125            1

                RX_HOSP_SURG_APPR_2010_F=Open_Unknown 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12      2      10    0.167   0.108        0.047        0.591
   24      2       0    0.167   0.108        0.047        0.591
   36      1       0    0.167   0.108        0.047        0.591

                RX_HOSP_SURG_APPR_2010_F=Unknown 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    134      43    0.771  0.0307        0.713        0.834
   24    103      20    0.652  0.0357        0.586        0.726
   36     69      16    0.549  0.0383        0.479        0.630
   48     52       3    0.523  0.0393        0.452        0.606
   60     33       2    0.500  0.0410        0.425        0.587




   
## Univariable Cox Proportional Hazard Model for:  RX_HOSP_SURG_APPR_2010_F
X matrix deemed to be singular; variable 1 2 4
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ RX_HOSP_SURG_APPR_2010_F, data = data)

  n= 316, number of events= 152 
   (456 observations deleted due to missingness)

                                            coef exp(coef) se(coef)      z Pr(>|z|)   
RX_HOSP_SURG_APPR_2010_FRobot_Assist          NA        NA   0.0000     NA       NA   
RX_HOSP_SURG_APPR_2010_FRobot_to_Open         NA        NA   0.0000     NA       NA   
RX_HOSP_SURG_APPR_2010_FEndo_Lap         -0.5958    0.5511   1.0094 -0.590  0.55502   
RX_HOSP_SURG_APPR_2010_FEndo_Lap_to_Open      NA        NA   0.0000     NA       NA   
RX_HOSP_SURG_APPR_2010_FOpen_Unknown      1.0727    2.9232   0.3308  3.242  0.00119 **
RX_HOSP_SURG_APPR_2010_FUnknown          -0.5373    0.5843   0.1731 -3.103  0.00191 **
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

                                         exp(coef) exp(-coef) lower .95 upper .95
RX_HOSP_SURG_APPR_2010_FRobot_Assist            NA         NA        NA        NA
RX_HOSP_SURG_APPR_2010_FRobot_to_Open           NA         NA        NA        NA
RX_HOSP_SURG_APPR_2010_FEndo_Lap            0.5511     1.8145   0.07622    3.9851
RX_HOSP_SURG_APPR_2010_FEndo_Lap_to_Open        NA         NA        NA        NA
RX_HOSP_SURG_APPR_2010_FOpen_Unknown        2.9232     0.3421   1.52842    5.5907
RX_HOSP_SURG_APPR_2010_FUnknown             0.5843     1.7113   0.41620    0.8204

Concordance= 0.6  (se = 0.02 )
Rsquare= 0.071   (max possible= 0.994 )
Likelihood ratio test= 23.3  on 3 df,   p=3.501e-05
Wald test            = 29.16  on 3 df,   p=2.071e-06
Score (logrank) test = 33.43  on 3 df,   p=2.613e-07
Removed 4 rows containing missing values (geom_errorbar).



   
## Unadjusted Kaplan Meier Overall Survival Curve for:  RX_HOSP_SURG_APPR_2010_F

Surgery Radiation Sequence

uni_var(test_var = "SURG_RAD_SEQ", data_imp = data)
_________________________________________________
   
## SURG_RAD_SEQ
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ SURG_RAD_SEQ, data = data)

                             n events median 0.95LCL 0.95UCL
SURG_RAD_SEQ=Surg Alone     87     53   28.4    10.5    97.3
SURG_RAD_SEQ=Surg then Rad  20      6     NA    21.2      NA
SURG_RAD_SEQ=Rad Alone      95     47   34.1    18.7      NA
SURG_RAD_SEQ=No Treatment  514    288   25.2    21.5    34.8
SURG_RAD_SEQ=Other          56     23     NA    20.2      NA

Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ SURG_RAD_SEQ, data = data)

                SURG_RAD_SEQ=Surg Alone 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     50      35    0.589  0.0534        0.493        0.703
   24     44       6    0.518  0.0542        0.422        0.636
   36     37       4    0.471  0.0541        0.376        0.590
   48     30       5    0.407  0.0539        0.314        0.527
   60     30       0    0.407  0.0539        0.314        0.527
  120      7       3    0.360  0.0544        0.267        0.484

                SURG_RAD_SEQ=Surg then Rad 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     16       3    0.847  0.0814        0.702        1.000
   24     12       3    0.678  0.1091        0.494        0.929
   36     11       0    0.678  0.1091        0.494        0.929
   48     10       0    0.678  0.1091        0.494        0.929
   60     10       0    0.678  0.1091        0.494        0.929
  120      6       0    0.678  0.1091        0.494        0.929

                SURG_RAD_SEQ=Rad Alone 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     57      31    0.659  0.0499        0.568        0.765
   24     43      11    0.525  0.0537        0.430        0.642
   36     36       3    0.487  0.0542        0.391        0.605
   48     32       0    0.487  0.0542        0.391        0.605
   60     32       0    0.487  0.0542        0.391        0.605
  120     12       2    0.456  0.0549        0.360        0.578

                SURG_RAD_SEQ=No Treatment 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    312     166    0.664  0.0213        0.624        0.708
   24    228      63    0.526  0.0229        0.483        0.573
   36    175      33    0.448  0.0232        0.405        0.496
   48    147       7    0.430  0.0233        0.386        0.478
   60    123       5    0.414  0.0235        0.371        0.463
  120     34      13    0.350  0.0264        0.302        0.406

                SURG_RAD_SEQ=Other 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     32      18    0.655  0.0660        0.538        0.798
   24     29       2    0.614  0.0680        0.494        0.763
   36     21       2    0.565  0.0708        0.442        0.722
   48     17       0    0.565  0.0708        0.442        0.722
   60     15       0    0.565  0.0708        0.442        0.722
  120      4       1    0.518  0.0791        0.384        0.699




   
## Univariable Cox Proportional Hazard Model for:  SURG_RAD_SEQ
X matrix deemed to be singular; variable 5 6
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ SURG_RAD_SEQ, data = data)

  n= 772, number of events= 417 

                                         coef exp(coef) se(coef)      z Pr(>|z|)  
SURG_RAD_SEQSurg then Rad             -0.9694    0.3793   0.4309 -2.250   0.0244 *
SURG_RAD_SEQRad Alone                 -0.2515    0.7777   0.2004 -1.255   0.2096  
SURG_RAD_SEQNo Treatment              -0.0677    0.9345   0.1497 -0.452   0.6511  
SURG_RAD_SEQOther                     -0.3972    0.6722   0.2498 -1.590   0.1118  
SURG_RAD_SEQRad before and after Surg      NA        NA   0.0000     NA       NA  
SURG_RAD_SEQRad then Surg                  NA        NA   0.0000     NA       NA  
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

                                      exp(coef) exp(-coef) lower .95 upper .95
SURG_RAD_SEQSurg then Rad                0.3793      2.636    0.1630    0.8825
SURG_RAD_SEQRad Alone                    0.7777      1.286    0.5250    1.1519
SURG_RAD_SEQNo Treatment                 0.9345      1.070    0.6969    1.2532
SURG_RAD_SEQOther                        0.6722      1.488    0.4120    1.0968
SURG_RAD_SEQRad before and after Surg        NA         NA        NA        NA
SURG_RAD_SEQRad then Surg                    NA         NA        NA        NA

Concordance= 0.53  (se = 0.012 )
Rsquare= 0.013   (max possible= 0.999 )
Likelihood ratio test= 10.14  on 4 df,   p=0.03808
Wald test            = 8.42  on 4 df,   p=0.07745
Score (logrank) test = 8.75  on 4 df,   p=0.06757
Removed 3 rows containing missing values (geom_errorbar).



   
## Unadjusted Kaplan Meier Overall Survival Curve for:  SURG_RAD_SEQ

Surgery Yes/No

uni_var(test_var = "SURGERY_YN", data_imp = data)
_________________________________________________
   
## SURGERY_YN
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ SURGERY_YN, data = data)

                 n events median 0.95LCL 0.95UCL
SURGERY_YN=No  639    346   26.6    23.2      38
SURGERY_YN=Ukn  25     11   76.5    20.2      NA
SURGERY_YN=Yes 108     60   37.9    17.1      NA

Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ SURGERY_YN, data = data)

                SURGERY_YN=No 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    386     208    0.662  0.0191        0.625        0.700
   24    287      74    0.531  0.0205        0.492        0.573
   36    221      36    0.462  0.0208        0.423        0.505
   48    185       7    0.447  0.0209        0.408        0.490
   60    160       5    0.434  0.0211        0.395        0.478
  120     46      15    0.377  0.0234        0.334        0.426

                SURGERY_YN=Ukn 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     15       6    0.724  0.0959        0.559        0.939
   24     13       2    0.628  0.1047        0.453        0.870
   36     11       2    0.531  0.1086        0.356        0.793
   48     11       0    0.531  0.1086        0.356        0.793
   60     10       0    0.531  0.1086        0.356        0.793
  120      4       1    0.472  0.1114        0.297        0.750

                SURGERY_YN=Yes 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     66      39    0.631  0.0469        0.546        0.730
   24     56       9    0.544  0.0487        0.457        0.648
   36     48       4    0.504  0.0490        0.417        0.610
   48     40       5    0.451  0.0492        0.365        0.559
   60     40       0    0.451  0.0492        0.365        0.559
  120     13       3    0.414  0.0498        0.327        0.524




   
## Univariable Cox Proportional Hazard Model for:  SURGERY_YN

Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ SURGERY_YN, data = data)

  n= 772, number of events= 417 

                  coef exp(coef) se(coef)      z Pr(>|z|)
SURGERY_YNUkn -0.25971   0.77127  0.30648 -0.847    0.397
SURGERY_YNYes -0.02857   0.97183  0.14014 -0.204    0.838

              exp(coef) exp(-coef) lower .95 upper .95
SURGERY_YNUkn    0.7713      1.297    0.4230     1.406
SURGERY_YNYes    0.9718      1.029    0.7384     1.279

Concordance= 0.5  (se = 0.01 )
Rsquare= 0.001   (max possible= 0.999 )
Likelihood ratio test= 0.8  on 2 df,   p=0.6708
Wald test            = 0.74  on 2 df,   p=0.691
Score (logrank) test = 0.74  on 2 df,   p=0.6897
no non-missing arguments to min; returning Infno non-missing arguments to max; returning -InfTransformation introduced infinite values in continuous y-axisTransformation introduced infinite values in continuous y-axisTransformation introduced infinite values in continuous y-axisRemoved 1 rows containing missing values (geom_errorbar).Removed 1 rows containing missing values (geom_text).Removed 1 rows containing missing values (geom_text).Removed 1 rows containing missing values (geom_text).Removed 1 rows containing missing values (geom_text).Removed 1 rows containing missing values (geom_text).Removed 1 rows containing missing values (geom_text).



   
## Unadjusted Kaplan Meier Overall Survival Curve for:  SURGERY_YN

Radiation Yes/No

uni_var(test_var = "RADIATION_YN", data_imp = data)
_________________________________________________
   
## RADIATION_YN
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ RADIATION_YN, data = data)

   9 observations deleted due to missingness 
                   n events median 0.95LCL 0.95UCL
RADIATION_YN=No  620    349   26.2    22.4    35.3
RADIATION_YN=Yes 143     62     NA    26.6      NA

Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ RADIATION_YN, data = data)

9 observations deleted due to missingness 
                RADIATION_YN=No 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    373     205    0.656  0.0195        0.619        0.695
   24    281      71    0.528  0.0208        0.489        0.571
   36    220      38    0.455  0.0210        0.416        0.498
   48    185      12    0.429  0.0211        0.390        0.473
   60    160       5    0.417  0.0212        0.378        0.461
  120     44      17    0.356  0.0231        0.313        0.404

                RADIATION_YN=Yes 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     91      43    0.690  0.0394        0.616        0.771
   24     72      14    0.578  0.0428        0.500        0.669
   36     58       3    0.552  0.0435        0.473        0.645
   48     49       0    0.552  0.0435        0.473        0.645
   60     48       0    0.552  0.0435        0.473        0.645
  120     18       2    0.528  0.0448        0.448        0.624




   
## Univariable Cox Proportional Hazard Model for:  RADIATION_YN

Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ RADIATION_YN, data = data)

  n= 763, number of events= 411 
   (9 observations deleted due to missingness)

                   coef exp(coef) se(coef)      z Pr(>|z|)   
RADIATION_YNYes -0.3614    0.6967   0.1379 -2.621  0.00876 **
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

                exp(coef) exp(-coef) lower .95 upper .95
RADIATION_YNYes    0.6967      1.435    0.5317    0.9129

Concordance= 0.523  (se = 0.01 )
Rsquare= 0.01   (max possible= 0.999 )
Likelihood ratio test= 7.46  on 1 df,   p=0.0063
Wald test            = 6.87  on 1 df,   p=0.008762
Score (logrank) test = 6.95  on 1 df,   p=0.008402





   
## Unadjusted Kaplan Meier Overall Survival Curve for:  RADIATION_YN

Chemo Yes/No

uni_var(test_var = "CHEMO_YN", data_imp = data)
_________________________________________________
   
## CHEMO_YN
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ CHEMO_YN, data = data)

               n events median 0.95LCL 0.95UCL
CHEMO_YN=No  151     88   14.1    6.21    39.9
CHEMO_YN=Yes 601    325   29.8   24.54    48.1
CHEMO_YN=Ukn  20      4     NA      NA      NA

Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ CHEMO_YN, data = data)

                CHEMO_YN=No 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     71      67    0.524  0.0423        0.447        0.614
   24     54      11    0.440  0.0424        0.364        0.531
   36     50       2    0.423  0.0424        0.348        0.515
   48     43       3    0.396  0.0425        0.321        0.489
   60     40       0    0.396  0.0425        0.321        0.489
  120     15       4    0.344  0.0448        0.266        0.444

                CHEMO_YN=Yes 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    385     184    0.686  0.0192        0.650        0.725
   24    292      73    0.553  0.0209        0.513        0.595
   36    221      39    0.476  0.0213        0.436        0.520
   48    186       9    0.456  0.0214        0.416        0.500
   60    163       5    0.443  0.0216        0.403        0.488
  120     46      15    0.389  0.0234        0.346        0.438

                CHEMO_YN=Ukn 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     11       2    0.867  0.0878        0.711        1.000
   24     10       1    0.788  0.1096        0.600        1.000
   36      9       1    0.709  0.1238        0.504        0.998
   48      7       0    0.709  0.1238        0.504        0.998
   60      7       0    0.709  0.1238        0.504        0.998
  120      2       0    0.709  0.1238        0.504        0.998




   
## Univariable Cox Proportional Hazard Model for:  CHEMO_YN

Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ CHEMO_YN, data = data)

  n= 772, number of events= 417 

               coef exp(coef) se(coef)      z Pr(>|z|)   
CHEMO_YNYes -0.3719    0.6894   0.1203 -3.090   0.0020 **
CHEMO_YNUkn -1.2543    0.2853   0.5113 -2.453   0.0142 * 
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

            exp(coef) exp(-coef) lower .95 upper .95
CHEMO_YNYes    0.6894      1.450    0.5446    0.8728
CHEMO_YNUkn    0.2853      3.505    0.1047    0.7771

Concordance= 0.552  (se = 0.01 )
Rsquare= 0.018   (max possible= 0.999 )
Likelihood ratio test= 13.89  on 2 df,   p=0.000965
Wald test            = 13.22  on 2 df,   p=0.001347
Score (logrank) test = 13.68  on 2 df,   p=0.001072
Removed 1 rows containing missing values (geom_errorbar).



   
## Unadjusted Kaplan Meier Overall Survival Curve for:  CHEMO_YN

Treatment Yes/No

uni_var(test_var = "Tx_YN", data_imp = data)
_________________________________________________
   
## Tx_YN
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ Tx_YN, data = data)

   20 observations deleted due to missingness 
              n events median 0.95LCL 0.95UCL
Tx_YN=FALSE  90     56   7.92    2.23    30.2
Tx_YN=TRUE  662    357  29.80   24.54    43.0

Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ Tx_YN, data = data)

20 observations deleted due to missingness 
                Tx_YN=FALSE 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12     37      47    0.442  0.0542        0.347        0.562
   24     28       4    0.393  0.0534        0.301        0.513
   36     27       1    0.379  0.0533        0.288        0.499
   48     23       1    0.364  0.0533        0.273        0.485
   60     20       0    0.364  0.0533        0.273        0.485
  120      8       2    0.311  0.0584        0.215        0.449

                Tx_YN=TRUE 
 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    419     204    0.683  0.0184        0.647        0.720
   24    318      80    0.549  0.0200        0.511        0.589
   36    244      40    0.477  0.0203        0.439        0.519
   48    206      11    0.455  0.0205        0.417        0.497
   60    183       5    0.443  0.0206        0.405        0.486
  120     53      17    0.390  0.0220        0.349        0.436




   
## Univariable Cox Proportional Hazard Model for:  Tx_YN

Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ Tx_YN, data = data)

  n= 752, number of events= 413 
   (20 observations deleted due to missingness)

             coef exp(coef) se(coef)      z Pr(>|z|)    
Tx_YNTRUE -0.5399    0.5828   0.1439 -3.753 0.000175 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

          exp(coef) exp(-coef) lower .95 upper .95
Tx_YNTRUE    0.5828      1.716    0.4396    0.7726

Concordance= 0.541  (se = 0.007 )
Rsquare= 0.016   (max possible= 0.999 )
Likelihood ratio test= 12.35  on 1 df,   p=0.0004402
Wald test            = 14.09  on 1 df,   p=0.0001746
Score (logrank) test = 14.43  on 1 df,   p=0.0001454





   
## Unadjusted Kaplan Meier Overall Survival Curve for:  Tx_YN

Metastases at Dx

uni_var(test_var = "mets_at_dx_F", data_imp = data)
_________________________________________________
   
## mets_at_dx_F
_________________________________________________
Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ mets_at_dx_F, data = data)

      n  events  median 0.95LCL 0.95UCL 
  772.0   417.0    27.7    24.1    38.5 

Call: survfit(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ mets_at_dx_F, data = data)

 time n.risk n.event survival std.err lower 95% CI upper 95% CI
   12    467     253    0.660  0.0174        0.626        0.695
   24    356      85    0.536  0.0186        0.501        0.574
   36    280      42    0.471  0.0189        0.435        0.509
   48    236      12    0.450  0.0190        0.414        0.489
   60    210       5    0.440  0.0191        0.404        0.479
  120     63      19    0.388  0.0205        0.349        0.430



   
## Univariable Cox Proportional Hazard Model for:  mets_at_dx_F

Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ mets_at_dx_F, data = data)

  n= 772, number of events= 417 

                 coef exp(coef) se(coef)  z Pr(>|z|)
mets_at_dx_FTRUE    0         1        0 NA       NA

                 exp(coef) exp(-coef) lower .95 upper .95
mets_at_dx_FTRUE         1          1         1         1

Concordance= 0.5  (se = 0 )
Rsquare= 0   (max possible= 0.999 )
Likelihood ratio test= 0  on 1 df,   p=1
Wald test            = NaN  on 1 df,   p=NaN
Score (logrank) test = 0  on 1 df,   p=1
relative range of values =   0 * EPS, is small (axis 0)



   
## Unadjusted Kaplan Meier Overall Survival Curve for:  mets_at_dx_F

Tumor specific Variables

Node Size

Cox Proportional Hazard Ratio

Model #1

Full analysis

model_one <- coxph(Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 0)
                     ~ SURG_RAD_SEQ + INSURANCE_F + AGE + SEX_F + RACE_F + INCOME_F + U_R_F +
                      FACILITY_TYPE_F + FACILITY_LOCATION_F + EDUCATION_F,
                     data = data)
X matrix deemed to be singular; variable 5 6
model_one %>% summary()
Call:
coxph(formula = Surv(DX_LASTCONTACT_DEATH_MONTHS, PUF_VITAL_STATUS == 
    0) ~ SURG_RAD_SEQ + INSURANCE_F + AGE + SEX_F + RACE_F + 
    INCOME_F + U_R_F + FACILITY_TYPE_F + FACILITY_LOCATION_F + 
    EDUCATION_F, data = data)

  n= 414, number of events= 293 
   (358 observations deleted due to missingness)

                                                  coef exp(coef)  se(coef)      z Pr(>|z|)    
SURG_RAD_SEQSurg then Rad                    -2.280194  0.102264  1.026194 -2.222  0.02628 *  
SURG_RAD_SEQRad Alone                        -0.185526  0.830667  0.259684 -0.714  0.47496    
SURG_RAD_SEQNo Treatment                     -0.107932  0.897688  0.188964 -0.571  0.56788    
SURG_RAD_SEQOther                            -0.324235  0.723080  0.347710 -0.932  0.35108    
SURG_RAD_SEQRad before and after Surg               NA        NA  0.000000     NA       NA    
SURG_RAD_SEQRad then Surg                           NA        NA  0.000000     NA       NA    
INSURANCE_FNone                               0.133165  1.142439  0.301366  0.442  0.65858    
INSURANCE_FMedicaid                           0.101660  1.107007  0.247997  0.410  0.68186    
INSURANCE_FMedicare                          -0.108532  0.897150  0.178730 -0.607  0.54369    
INSURANCE_FOther Government                   0.353103  1.423478  0.612010  0.577  0.56397    
INSURANCE_FUnknown                           -0.660913  0.516380  0.434740 -1.520  0.12845    
AGE                                           0.042637  1.043559  0.006967  6.120 9.36e-10 ***
SEX_FFemale                                   0.309213  1.362352  0.130086  2.377  0.01745 *  
RACE_FBlack                                   0.432280  1.540766  0.182571  2.368  0.01790 *  
RACE_FOther/Unk                               0.403703  1.497359  0.480857  0.840  0.40116    
RACE_FAsian                                  -0.177439  0.837412  0.316590 -0.560  0.57516    
INCOME_F$38,000 - $47,999                     0.267164  1.306254  0.227972  1.172  0.24123    
INCOME_F$48,000 - $62,999                     0.411755  1.509465  0.230768  1.784  0.07438 .  
INCOME_F$63,000 +                             0.391349  1.478975  0.267570  1.463  0.14358    
U_R_FUrban                                    0.125293  1.133481  0.225677  0.555  0.57877    
U_R_FRural                                    0.038726  1.039486  0.441140  0.088  0.93005    
FACILITY_TYPE_FComprehensive Comm Ca Program -0.166225  0.846856  0.307826 -0.540  0.58920    
FACILITY_TYPE_FAcademic/Research Program     -0.261774  0.769685  0.305008 -0.858  0.39075    
FACILITY_TYPE_FIntegrated Network Ca Program  0.205259  1.227844  0.351677  0.584  0.55945    
FACILITY_LOCATION_FMiddle Atlantic            0.120588  1.128161  0.401808  0.300  0.76409    
FACILITY_LOCATION_FSouth Atlantic             0.264348  1.302581  0.393194  0.672  0.50139    
FACILITY_LOCATION_FEast North Central         0.137360  1.147241  0.401225  0.342  0.73209    
FACILITY_LOCATION_FEast South Central         0.110091  1.116380  0.455849  0.242  0.80916    
FACILITY_LOCATION_FWest North Central         0.237506  1.268083  0.419791  0.566  0.57155    
FACILITY_LOCATION_FWest South Central         0.130166  1.139018  0.422257  0.308  0.75788    
FACILITY_LOCATION_FMountain                  -0.226986  0.796932  0.638032 -0.356  0.72202    
FACILITY_LOCATION_FPacific                    0.186445  1.204959  0.396464  0.470  0.63816    
EDUCATION_F13 - 20.9%                        -0.443761  0.641619  0.201696 -2.200  0.02780 *  
EDUCATION_F7 - 12.9%                         -0.731401  0.481234  0.230276 -3.176  0.00149 ** 
EDUCATION_FLess than 7%                      -0.604239  0.546490  0.273255 -2.211  0.02702 *  
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

                                             exp(coef) exp(-coef) lower .95 upper .95
SURG_RAD_SEQSurg then Rad                       0.1023     9.7786   0.01368    0.7642
SURG_RAD_SEQRad Alone                           0.8307     1.2039   0.49933    1.3819
SURG_RAD_SEQNo Treatment                        0.8977     1.1140   0.61984    1.3001
SURG_RAD_SEQOther                               0.7231     1.3830   0.36578    1.4294
SURG_RAD_SEQRad before and after Surg               NA         NA        NA        NA
SURG_RAD_SEQRad then Surg                           NA         NA        NA        NA
INSURANCE_FNone                                 1.1424     0.8753   0.63286    2.0623
INSURANCE_FMedicaid                             1.1070     0.9033   0.68086    1.7999
INSURANCE_FMedicare                             0.8971     1.1146   0.63202    1.2735
INSURANCE_FOther Government                     1.4235     0.7025   0.42895    4.7238
INSURANCE_FUnknown                              0.5164     1.9366   0.22025    1.2107
AGE                                             1.0436     0.9583   1.02941    1.0579
SEX_FFemale                                     1.3624     0.7340   1.05575    1.7580
RACE_FBlack                                     1.5408     0.6490   1.07729    2.2036
RACE_FOther/Unk                                 1.4974     0.6678   0.58347    3.8427
RACE_FAsian                                     0.8374     1.1942   0.45025    1.5575
INCOME_F$38,000 - $47,999                       1.3063     0.7655   0.83556    2.0421
INCOME_F$48,000 - $62,999                       1.5095     0.6625   0.96027    2.3728
INCOME_F$63,000 +                               1.4790     0.6761   0.87540    2.4987
U_R_FUrban                                      1.1335     0.8822   0.72831    1.7641
U_R_FRural                                      1.0395     0.9620   0.43784    2.4678
FACILITY_TYPE_FComprehensive Comm Ca Program    0.8469     1.1808   0.46322    1.5482
FACILITY_TYPE_FAcademic/Research Program        0.7697     1.2992   0.42334    1.3994
FACILITY_TYPE_FIntegrated Network Ca Program    1.2278     0.8144   0.61630    2.4462
FACILITY_LOCATION_FMiddle Atlantic              1.1282     0.8864   0.51328    2.4796
FACILITY_LOCATION_FSouth Atlantic               1.3026     0.7677   0.60272    2.8151
FACILITY_LOCATION_FEast North Central           1.1472     0.8717   0.52255    2.5187
FACILITY_LOCATION_FEast South Central           1.1164     0.8958   0.45687    2.7279
FACILITY_LOCATION_FWest North Central           1.2681     0.7886   0.55696    2.8872
FACILITY_LOCATION_FWest South Central           1.1390     0.8779   0.49786    2.6059
FACILITY_LOCATION_FMountain                     0.7969     1.2548   0.22821    2.7830
FACILITY_LOCATION_FPacific                      1.2050     0.8299   0.55399    2.6209
EDUCATION_F13 - 20.9%                           0.6416     1.5586   0.43211    0.9527
EDUCATION_F7 - 12.9%                            0.4812     2.0780   0.30644    0.7557
EDUCATION_FLess than 7%                         0.5465     1.8299   0.31988    0.9336

Concordance= 0.658  (se = 0.018 )
Rsquare= 0.206   (max possible= 1 )
Likelihood ratio test= 95.5  on 33 df,   p=5.45e-08
Wald test            = 87.43  on 33 df,   p=8.176e-07
Score (logrank) test = 92.84  on 33 df,   p=1.344e-07

Summary of Model

model_one %>%
        tidy(., exponentiate = TRUE) %>%
        select(term, estimate, conf.low, conf.high, p.value) %>%
        rename(Variable = term,
               Hazard_Ratio = estimate) %>%
        tbl_df %>%
        print(n = nrow(.))

Prediction Logistic Regression Models

Surgery

no_Ukns <- data %>%
  filter(SURGERY_YN != "Ukn") %>% 
  droplevels() %>% 
  mutate(SURGERY_YN = as.logical(SURGERY_YN))
fit_surg <- glm(SURG_TF ~ AGE_F + SEX_F + RACE_F + INCOME_F + U_R_F +
                      FACILITY_TYPE_F + FACILITY_LOCATION_F + EDUCATION_F + EXPN_GROUP,
   data = no_Ukns)
summary(fit_surg)

Call:
glm(formula = SURG_TF ~ AGE_F + SEX_F + RACE_F + INCOME_F + U_R_F + 
    FACILITY_TYPE_F + FACILITY_LOCATION_F + EDUCATION_F + EXPN_GROUP, 
    data = no_Ukns)

Deviance Residuals: 
     Min        1Q    Median        3Q       Max  
-0.38974  -0.19490  -0.10079   0.00705   0.93817  

Coefficients:
                                              Estimate Std. Error t value Pr(>|t|)   
(Intercept)                                   0.075349   0.153233   0.492  0.62320   
AGE_F(54,64]                                 -0.132040   0.046835  -2.819  0.00507 **
AGE_F(64,74]                                 -0.124657   0.047982  -2.598  0.00975 **
AGE_F(74,100]                                -0.011618   0.051475  -0.226  0.82156   
SEX_FFemale                                  -0.043820   0.036580  -1.198  0.23171   
RACE_FBlack                                   0.028193   0.053622   0.526  0.59936   
RACE_FOther/Unk                              -0.069718   0.127165  -0.548  0.58385   
RACE_FAsian                                   0.002664   0.088595   0.030  0.97603   
INCOME_F$38,000 - $47,999                    -0.035064   0.063262  -0.554  0.57973   
INCOME_F$48,000 - $62,999                     0.004362   0.063227   0.069  0.94504   
INCOME_F$63,000 +                            -0.013117   0.072247  -0.182  0.85603   
U_R_FUrban                                    0.019711   0.063134   0.312  0.75506   
U_R_FRural                                   -0.046542   0.128576  -0.362  0.71758   
FACILITY_TYPE_FComprehensive Comm Ca Program -0.103275   0.084189  -1.227  0.22071   
FACILITY_TYPE_FAcademic/Research Program     -0.072979   0.082268  -0.887  0.37561   
FACILITY_TYPE_FIntegrated Network Ca Program  0.043970   0.098069   0.448  0.65416   
FACILITY_LOCATION_FMiddle Atlantic            0.126518   0.118191   1.070  0.28511   
FACILITY_LOCATION_FSouth Atlantic             0.055229   0.115622   0.478  0.63317   
FACILITY_LOCATION_FEast North Central        -0.058578   0.117281  -0.499  0.61775   
FACILITY_LOCATION_FEast South Central         0.003538   0.134174   0.026  0.97898   
FACILITY_LOCATION_FWest North Central        -0.014000   0.122771  -0.114  0.90927   
FACILITY_LOCATION_FWest South Central         0.022999   0.124528   0.185  0.85358   
FACILITY_LOCATION_FMountain                  -0.121822   0.156600  -0.778  0.43711   
FACILITY_LOCATION_FPacific                    0.137284   0.119460   1.149  0.25121   
EDUCATION_F13 - 20.9%                        -0.003932   0.058792  -0.067  0.94671   
EDUCATION_F7 - 12.9%                          0.081094   0.065873   1.231  0.21908   
EDUCATION_FLess than 7%                       0.129882   0.075835   1.713  0.08761 . 
EXPN_GROUPPre-Expansion                       0.133317   0.051058   2.611  0.00939 **
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

(Dispersion parameter for gaussian family taken to be 0.1149349)

    Null deviance: 48.121  on 397  degrees of freedom
Residual deviance: 42.526  on 370  degrees of freedom
  (349 observations deleted due to missingness)
AIC: 297.41

Number of Fisher Scoring iterations: 2
exp(cbind("Odds ratio" = coef(fit_surg), confint.default(fit_surg, level = 0.95)))
                                             Odds ratio     2.5 %    97.5 %
(Intercept)                                   1.0782609 0.7985309 1.4559820
AGE_F(54,64]                                  0.8763056 0.7994474 0.9605529
AGE_F(64,74]                                  0.8827999 0.8035633 0.9698498
AGE_F(74,100]                                 0.9884495 0.8935914 1.0933772
SEX_FFemale                                   0.9571265 0.8909077 1.0282672
RACE_FBlack                                   1.0285942 0.9259778 1.1425826
RACE_FOther/Unk                               0.9326566 0.7269064 1.1966442
RACE_FAsian                                   1.0026678 0.8428394 1.1928046
INCOME_F$38,000 - $47,999                     0.9655438 0.8529497 1.0930009
INCOME_F$48,000 - $62,999                     1.0043713 0.8873103 1.1368760
INCOME_F$63,000 +                             0.9869689 0.8566557 1.1371051
U_R_FUrban                                    1.0199065 0.9011989 1.1542503
U_R_FRural                                    0.9545247 0.7418955 1.2280941
FACILITY_TYPE_FComprehensive Comm Ca Program  0.9018791 0.7646926 1.0636770
FACILITY_TYPE_FAcademic/Research Program      0.9296207 0.7911863 1.0922770
FACILITY_TYPE_FIntegrated Network Ca Program  1.0449506 0.8622224 1.2664040
FACILITY_LOCATION_FMiddle Atlantic            1.1348702 0.9002059 1.4307063
FACILITY_LOCATION_FSouth Atlantic             1.0567824 0.8424969 1.3255705
FACILITY_LOCATION_FEast North Central         0.9431046 0.7494284 1.1868328
FACILITY_LOCATION_FEast South Central         1.0035445 0.7714852 1.3054063
FACILITY_LOCATION_FWest North Central         0.9860977 0.7752065 1.2543608
FACILITY_LOCATION_FWest South Central         1.0232651 0.8016590 1.3061308
FACILITY_LOCATION_FMountain                   0.8853055 0.6513213 1.2033475
FACILITY_LOCATION_FPacific                    1.1471541 0.9076889 1.4497947
EDUCATION_F13 - 20.9%                         0.9960756 0.8876645 1.1177270
EDUCATION_F7 - 12.9%                          1.0844726 0.9531188 1.2339290
EDUCATION_FLess than 7%                       1.1386938 0.9814235 1.3211663
EXPN_GROUPPre-Expansion                       1.1426125 1.0338047 1.2628723

Metastasis at Time of Diagnosis

# limit to those cases where data about expansion status is available (> Age 39, non-ambiguous status states)
fit_mets <- glm(mets_at_dx_F ~ AGE_F + SEX_F + RACE_F + INCOME_F + U_R_F +
                      FACILITY_TYPE_F + FACILITY_LOCATION_F + EDUCATION_F + EXPN_GROUP,
   data = no_Excludes)
summary(fit_mets)

Call:
glm(formula = mets_at_dx_F ~ AGE_F + SEX_F + RACE_F + INCOME_F + 
    U_R_F + FACILITY_TYPE_F + FACILITY_LOCATION_F + EDUCATION_F + 
    EXPN_GROUP, data = no_Excludes)

Deviance Residuals: 
   Min      1Q  Median      3Q     Max  
     0       0       0       0       0  

Coefficients:
                                             Estimate Std. Error t value Pr(>|t|)
(Intercept)                                         0          0      NA       NA
AGE_F(54,64]                                        0          0      NA       NA
AGE_F(64,74]                                        0          0      NA       NA
AGE_F(74,100]                                       0          0      NA       NA
SEX_FFemale                                         0          0      NA       NA
RACE_FBlack                                         0          0      NA       NA
RACE_FOther/Unk                                     0          0      NA       NA
RACE_FAsian                                         0          0      NA       NA
INCOME_F$38,000 - $47,999                           0          0      NA       NA
INCOME_F$48,000 - $62,999                           0          0      NA       NA
INCOME_F$63,000 +                                   0          0      NA       NA
U_R_FUrban                                          0          0      NA       NA
U_R_FRural                                          0          0      NA       NA
FACILITY_TYPE_FComprehensive Comm Ca Program        0          0      NA       NA
FACILITY_TYPE_FAcademic/Research Program            0          0      NA       NA
FACILITY_TYPE_FIntegrated Network Ca Program        0          0      NA       NA
FACILITY_LOCATION_FMiddle Atlantic                  0          0      NA       NA
FACILITY_LOCATION_FSouth Atlantic                   0          0      NA       NA
FACILITY_LOCATION_FEast North Central               0          0      NA       NA
FACILITY_LOCATION_FEast South Central               0          0      NA       NA
FACILITY_LOCATION_FWest North Central               0          0      NA       NA
FACILITY_LOCATION_FWest South Central               0          0      NA       NA
FACILITY_LOCATION_FMountain                         0          0      NA       NA
FACILITY_LOCATION_FPacific                          0          0      NA       NA
EDUCATION_F13 - 20.9%                               0          0      NA       NA
EDUCATION_F7 - 12.9%                                0          0      NA       NA
EDUCATION_FLess than 7%                             0          0      NA       NA
EXPN_GROUPPre-Expansion                             0          0      NA       NA

(Dispersion parameter for gaussian family taken to be 0)

    Null deviance: 0  on 687  degrees of freedom
Residual deviance: 0  on 660  degrees of freedom
  (18 observations deleted due to missingness)
AIC: -Inf

Number of Fisher Scoring iterations: 1
exp(cbind("Odds ratio" = coef(fit_mets), confint.default(fit_surg, level = 0.95)))
                                             Odds ratio     2.5 %    97.5 %
(Intercept)                                           1 0.7985309 1.4559820
AGE_F(54,64]                                          1 0.7994474 0.9605529
AGE_F(64,74]                                          1 0.8035633 0.9698498
AGE_F(74,100]                                         1 0.8935914 1.0933772
SEX_FFemale                                           1 0.8909077 1.0282672
RACE_FBlack                                           1 0.9259778 1.1425826
RACE_FOther/Unk                                       1 0.7269064 1.1966442
RACE_FAsian                                           1 0.8428394 1.1928046
INCOME_F$38,000 - $47,999                             1 0.8529497 1.0930009
INCOME_F$48,000 - $62,999                             1 0.8873103 1.1368760
INCOME_F$63,000 +                                     1 0.8566557 1.1371051
U_R_FUrban                                            1 0.9011989 1.1542503
U_R_FRural                                            1 0.7418955 1.2280941
FACILITY_TYPE_FComprehensive Comm Ca Program          1 0.7646926 1.0636770
FACILITY_TYPE_FAcademic/Research Program              1 0.7911863 1.0922770
FACILITY_TYPE_FIntegrated Network Ca Program          1 0.8622224 1.2664040
FACILITY_LOCATION_FMiddle Atlantic                    1 0.9002059 1.4307063
FACILITY_LOCATION_FSouth Atlantic                     1 0.8424969 1.3255705
FACILITY_LOCATION_FEast North Central                 1 0.7494284 1.1868328
FACILITY_LOCATION_FEast South Central                 1 0.7714852 1.3054063
FACILITY_LOCATION_FWest North Central                 1 0.7752065 1.2543608
FACILITY_LOCATION_FWest South Central                 1 0.8016590 1.3061308
FACILITY_LOCATION_FMountain                           1 0.6513213 1.2033475
FACILITY_LOCATION_FPacific                            1 0.9076889 1.4497947
EDUCATION_F13 - 20.9%                                 1 0.8876645 1.1177270
EDUCATION_F7 - 12.9%                                  1 0.9531188 1.2339290
EDUCATION_FLess than 7%                               1 0.9814235 1.3211663
EXPN_GROUPPre-Expansion                               1 1.0338047 1.2628723
LS0tCnRpdGxlOiAiQ3V0YW5lb3VzIFQtQ2VsbCBMeW1waG9tYSBBbmFseXNpcyAtIEEgUmV2aWV3IG9mIHRoZSBOQ0RCIgphdXRob3I6ICJSYW1pZSBGYXRoeSIKZGF0ZTogIjEwLzE2LzIwMTkiCm91dHB1dDoKICBodG1sX25vdGVib29rOgogICAgdGhlbWU6IHVuaXRlZAogICAgdG9jOiB5ZXMKICAgIHRvY19mbG9hdDogeWVzCiAgaHRtbF9kb2N1bWVudDoKICAgIHRvYzogeWVzCi0tLQoKYGBge3IsIGVjaG89RkFMU0UsIHdhcm5pbmc9RkFMU0UsIG1lc3NhZ2U9RkFMU0V9CgpsaWJyYXJ5KCJnZ3Bsb3QyIikKbGlicmFyeSgiZHBseXIiKQpsaWJyYXJ5KCJ0aWR5ciIpCmxpYnJhcnkoImtuaXRyIikKbGlicmFyeSgidGFibGVvbmUiKQpsaWJyYXJ5KCJmb3JjYXRzIikKbGlicmFyeSgic3Vydml2YWwiKQpsaWJyYXJ5KCJucHN1cnYiKQpsaWJyYXJ5KCJicm9vbSIpCmxpYnJhcnkoInRpYmJsZSIpCmxpYnJhcnkoInJlYWRyIikKbGlicmFyeSgic3Vydm1pbmVyIikKbGlicmFyeSgic3RyaW5nciIpCgoKa25pdHI6Om9wdHNfY2h1bmskc2V0KGVjaG89VFJVRSwgd2FybmluZz1GQUxTRSwgbWVzc2FnZT1UUlVFKQonJSFpbiUnIDwtIGZ1bmN0aW9uKHgseSkhKCclaW4lJyh4LHkpKQpgYGAKCmBgYHtyfQpwX3RhYmxlIDwtIGZ1bmN0aW9uKHRhYl9kYXRhLCAuLi4pIHsKICB0YWJfZGF0YV8yIDwtIGRlcGFyc2Uoc3Vic3RpdHV0ZSh0YWJfZGF0YSkpCiAgCiAgdGFibGVfcCA8LSBkby5jYWxsKENyZWF0ZVRhYmxlT25lLCAKICAgICAgICAgICAgICAgICAgICAgbGlzdChkYXRhID0gYXMubmFtZSh0YWJfZGF0YV8yKSwgaW5jbHVkZU5BID0gVFJVRSwgLi4uKSkKICB0YWJsZV9wX291dCA8LSBwcmludCh0YWJsZV9wLAogICAgICAgICAgICAgICAgICAgICAgIHNob3dBbGxMZXZlbHMgPSBUUlVFLAogICAgICAgICAgICAgICAgICAgICAgIHByaW50VG9nZ2xlID0gRkFMU0UpCiAga2FibGUodGFibGVfcF9vdXQsCiAgICAgICAgYWxpZ24gPSAiYyIpCn0KYGBgCgpgYGB7cn0KdW5pX3ZhciA8LSBmdW5jdGlvbih0ZXN0X3ZhciwgZGF0YV9pbXApIHsKCiAgICAgICAgICAgICAgICAKICAgICAgICBjYXQoIl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18iKQogICAgICAgIGNhdCgiXG4iKQogICAgICAgIGNhdCgiICAgXG4jIyIsIHRlc3RfdmFyKQogICAgICAgIGNhdCgiXG4iKQogICAgICAgIGNhdCgiX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXyIpCiAgICAgICAgY2F0KCJcbiIpCgogICAgICAgIAogICAgICAgIGYgPC0gYXMuZm9ybXVsYShwYXN0ZSgiU3VydihEWF9MQVNUQ09OVEFDVF9ERUFUSF9NT05USFMsIFBVRl9WSVRBTF9TVEFUVVMgPT0gMCkiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcy5uYW1lKHRlc3RfdmFyKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VwID0gIiB+ICIgKSkKICAgICAgICAKICAgICAgICBkYXRhX2ltcF8yIDwtIGRlcGFyc2Uoc3Vic3RpdHV0ZShkYXRhX2ltcCkpCgogICAgICAgIGttX2ZpdCA8LSBkby5jYWxsKCJzdXJ2Zml0IiwgbGlzdChmb3JtdWxhID0gZiwgZGF0YSA9IGFzLm5hbWUoZGF0YV9pbXBfMikpKQoKICAgICAgICBwcmludChrbV9maXQpCiAgICAgICAgY2F0KCJcbiIpCgogICAgICAgIHByaW50KHN1bW1hcnkoa21fZml0LCB0aW1lcyA9IGMoMTIsIDI0LCAzNiwgNDgsIDYwLCAxMjApKSkKICAgICAgICBjYXQoIlxuIikKCgogICAgICAgIGNhdCgiXG4iKQogICAgICAgIGNhdCgiXG4iKQogICAgICAgIGNhdCgiICAgXG4jIyBVbml2YXJpYWJsZSBDb3ggUHJvcG9ydGlvbmFsIEhhemFyZCBNb2RlbCBmb3I6ICIsIHRlc3RfdmFyKQogICAgICAgIGNhdCgiXG4iKQogICAgICAgIGNhdCgiXG4iKQoKCiAgICAgICAgbl9sZXZlbHMgPC0gbmxldmVscyhkYXRhX2ltcFtbdGVzdF92YXJdXSkKCiAgICAgICAgaWYobl9sZXZlbHMgPT0gMSl7CiAgICAgICAgICAgICAgICBwcmludCgiT25seSBvbmUgbGV2ZWwsIG5vIENveCBtb2RlbCBwZXJmb3JtZWQiKQogICAgICAgICAgICAgICAgY2F0KCJcbiIpCgogICAgICAgIH0gZWxzZSB7CgoKICAgICAgICAgICAgICAgIGNveF9maXQgPC0gZG8uY2FsbCgiY294cGgiLCBsaXN0KGZvcm11bGEgPSBmLCBkYXRhID0gYXMubmFtZShkYXRhX2ltcF8yKSkpCgogICAgICAgICAgICAgICAgcHJpbnQoc3VtbWFyeShjb3hfZml0KSkKICAgICAgICAgICAgICAgIGNhdCgiXG4iKQogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICBkby5jYWxsKCJnZ2ZvcmVzdCIsCiAgICAgICAgICAgICAgICAgICAgICAgICBsaXN0KG1vZGVsID0gY294X2ZpdCwgZGF0YSA9IGFzLm5hbWUoZGF0YV9pbXBfMikpKQoKCiAgICAgICAgfQoKICAgICAgICBjYXQoIlxuIikKICAgICAgICBjYXQoIlxuIikKICAgICAgICBjYXQoIlxuIikKICAgICAgICBjYXQoIiAgIFxuIyMgVW5hZGp1c3RlZCBLYXBsYW4gTWVpZXIgT3ZlcmFsbCBTdXJ2aXZhbCBDdXJ2ZSBmb3I6ICIsIHRlc3RfdmFyKQoKCiAgICAgICAgcCA8LSBkby5jYWxsKCJnZ3N1cnZwbG90IiwKICAgICAgICAgICAgICAgICAgICAgbGlzdChmaXQgPSBrbV9maXQsIGRhdGEgPSBhcy5uYW1lKGRhdGFfaW1wXzIpLAogICAgICAgICAgICAgICAgICAgICAgICAgIHBhbGV0dGUgPSAiamNvIiwgY2Vuc29yID0gRkFMU0UsIGxlZ2VuZCA9ICJyaWdodCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgbGluZXR5cGUgPSAic3RyYXRhIiwgeGxhYiA9ICJUaW1lIChNb250aHMpIikpCgogICAgICAgIHByaW50KHApCgp9CgpgYGAKCmBgYHtyIGNodW5rMiwgY2FjaGU9VFJVRSwgbWVzc2FnZT1GQUxTRSwgd2FybmluZz1GQUxTRSwgcmVzdWx0cz0naGlkZSd9CmNvbC53aWR0aCA8LSBjKDM3LCAxMCwgMSwgMSwgMywgMSwgMiwgMSwgMiwgMSwgMSwgMSwgMSwgMSwgMSwgOCwgMiwgMiwgMiwgNCwgNCwgMSwgNCwgMSwgMSwKICAgICAgICAgICAgICAgMSwgMywgMiwgMiwgOCwgMiwgNSwgNSwgNSwgNCwgNSwgNSwgNSw0LCAyLCAxLCAyLCAxLCAzLCAxLCAxLCAxLCAxLCAxLCAxLCAzLAogICAgICAgICAgICAgICAzLCAzLCAzLCAzLCAzLCAzLCAzLCAzLCAzLCAzLCAzLCAzLCAzLCAzLCAzLCAzLCAzLCAzLCAzLCAzLCAzLCAzLCAzLCAzLCA2LCA4LAogICAgICAgICAgICAgICA4LCA4LCAyLCAxLCAxLCAxLCAxLCA4LCAxLCAxLCA4LCAxLCAxLCAyLCAyLCA1LCAyLCA1LCAzLCAxLCAzLCAxLCA4LCA4LCAyLCA4LAogICAgICAgICAgICAgICAyLCA4LCAyLCAyLCAxLCA4LCAxLCAxLCAxLCAxLCAxLCA4LCAxLCAyLCAyLCAyLCAyLCAyLCAxLCAxLCAxLCAyLCAxLCAzLCAxLCAxLAogICAgICAgICAgICAgICAxLCAxLCAxLCAxLCAxLCAxLCAxKQoKY29sLm5hbWVzLmFiciA8LSBjKCJQVUZfQ0FTRV9JRCIsICJQVUZfRkFDSUxJVFlfSUQiLCAiRkFDSUxJVFlfVFlQRV9DRCIsICJGQUNJTElUWV9MT0NBVElPTl9DRCIsCiAgICAgICAgICAgICAgICAgICAiQUdFIiwgIlNFWCIsICJSQUNFIiwgIlNQQU5JU0hfSElTUEFOSUNfT1JJR0lOIiwgIklOU1VSQU5DRV9TVEFUVVMiLAogICAgICAgICAgICAgICAgICAgIk1FRF9JTkNfUVVBUl8wMCIsICJOT19IU0RfUVVBUl8wMCIsICJVUl9DRF8wMyIsICJNRURfSU5DX1FVQVJfMTIiLCAiTk9fSFNEX1FVQVJfMTIiLAogICAgICAgICAgICAgICAgICAgIlVSX0NEXzEzIiwgIkNST1dGTFkiLCAiQ0RDQ19UT1RBTF9CRVNUIiwgIlNFUVVFTkNFX05VTUJFUiIsICJDTEFTU19PRl9DQVNFIiwKICAgICAgICAgICAgICAgICAgICJZRUFSX09GX0RJQUdOT1NJUyIsICJQUklNQVJZX1NJVEUiLCAiTEFURVJBTElUWSIsICJISVNUT0xPR1kiLCAiQkVIQVZJT1IiLCAiR1JBREUiLAogICAgICAgICAgICAgICAgICAgIkRJQUdOT1NUSUNfQ09ORklSTUFUSU9OIiwgIlRVTU9SX1NJWkUiLCAiUkVHSU9OQUxfTk9ERVNfUE9TSVRJVkUiLAogICAgICAgICAgICAgICAgICAgIlJFR0lPTkFMX05PREVTX0VYQU1JTkVEIiwgIkRYX1NUQUdJTkdfUFJPQ19EQVlTIiwgIlJYX1NVTU1fRFhTVEdfUFJPQyIsICJUTk1fQ0xJTl9UIiwKICAgICAgICAgICAgICAgICAgICJUTk1fQ0xJTl9OIiwgIlROTV9DTElOX00iLCAiVE5NX0NMSU5fU1RBR0VfR1JPVVAiLCAiVE5NX1BBVEhfVCIsICJUTk1fUEFUSF9OIiwgIlROTV9QQVRIX00iLAogICAgICAgICAgICAgICAgICAgIlROTV9QQVRIX1NUQUdFX0dST1VQIiwgIlROTV9FRElUSU9OX05VTUJFUiIsICJBTkFMWVRJQ19TVEFHRV9HUk9VUCIsICJDU19NRVRTX0FUX0RYIiwKICAgICAgICAgICAgICAgICAgICJDU19NRVRTX0VWQUwiLCAiQ1NfRVhURU5TSU9OIiwgIkNTX1RVTU9SX1NJWkVFWFRfRVZBTCIsICJDU19NRVRTX0RYX0JPTkUiLCAiQ1NfTUVUU19EWF9CUkFJTiIsCiAgICAgICAgICAgICAgICAgICAiQ1NfTUVUU19EWF9MSVZFUiIsICJDU19NRVRTX0RYX0xVTkciLCAiTFlNUEhfVkFTQ1VMQVJfSU5WQVNJT04iLCAiQ1NfU0lURVNQRUNJRklDX0ZBQ1RPUl8xIiwKICAgICAgICAgICAgICAgICAgICJDU19TSVRFU1BFQ0lGSUNfRkFDVE9SXzIiLCAiQ1NfU0lURVNQRUNJRklDX0ZBQ1RPUl8zIiwgIkNTX1NJVEVTUEVDSUZJQ19GQUNUT1JfNCIsCiAgICAgICAgICAgICAgICAgICAiQ1NfU0lURVNQRUNJRklDX0ZBQ1RPUl81IiwgIkNTX1NJVEVTUEVDSUZJQ19GQUNUT1JfNiIsICJDU19TSVRFU1BFQ0lGSUNfRkFDVE9SXzciLAogICAgICAgICAgICAgICAgICAgIkNTX1NJVEVTUEVDSUZJQ19GQUNUT1JfOCIsICJDU19TSVRFU1BFQ0lGSUNfRkFDVE9SXzkiLCAiQ1NfU0lURVNQRUNJRklDX0ZBQ1RPUl8xMCIsCiAgICAgICAgICAgICAgICAgICAiQ1NfU0lURVNQRUNJRklDX0ZBQ1RPUl8xMSIsICJDU19TSVRFU1BFQ0lGSUNfRkFDVE9SXzEyIiwgIkNTX1NJVEVTUEVDSUZJQ19GQUNUT1JfMTMiLAogICAgICAgICAgICAgICAgICAgIkNTX1NJVEVTUEVDSUZJQ19GQUNUT1JfMTQiLCAiQ1NfU0lURVNQRUNJRklDX0ZBQ1RPUl8xNSIsICJDU19TSVRFU1BFQ0lGSUNfRkFDVE9SXzE2IiwKICAgICAgICAgICAgICAgICAgICJDU19TSVRFU1BFQ0lGSUNfRkFDVE9SXzE3IiwgIkNTX1NJVEVTUEVDSUZJQ19GQUNUT1JfMTgiLCAiQ1NfU0lURVNQRUNJRklDX0ZBQ1RPUl8xOSIsCiAgICAgICAgICAgICAgICAgICAiQ1NfU0lURVNQRUNJRklDX0ZBQ1RPUl8yMCIsICJDU19TSVRFU1BFQ0lGSUNfRkFDVE9SXzIxIiwgIkNTX1NJVEVTUEVDSUZJQ19GQUNUT1JfMjIiLAogICAgICAgICAgICAgICAgICAgIkNTX1NJVEVTUEVDSUZJQ19GQUNUT1JfMjMiLCAiQ1NfU0lURVNQRUNJRklDX0ZBQ1RPUl8yNCIsICJDU19TSVRFU1BFQ0lGSUNfRkFDVE9SXzI1IiwKICAgICAgICAgICAgICAgICAgICJDU19WRVJTSU9OX0xBVEVTVCIsICJEWF9SWF9TVEFSVEVEX0RBWVMiLCAiRFhfU1VSR19TVEFSVEVEX0RBWVMiLCAiRFhfREVGU1VSR19TVEFSVEVEX0RBWVMiLAogICAgICAgICAgICAgICAgICAgIlJYX1NVTU1fU1VSR19QUklNX1NJVEUiLCAiUlhfSE9TUF9TVVJHX0FQUFJfMjAxMCIsICJSWF9TVU1NX1NVUkdJQ0FMX01BUkdJTlMiLAogICAgICAgICAgICAgICAgICAgIlJYX1NVTU1fU0NPUEVfUkVHX0xOX1NVUiIsICJSWF9TVU1NX1NVUkdfT1RIX1JFR0RJUyIsICJTVVJHX0RJU0NIQVJHRV9EQVlTIiwgIlJFQURNX0hPU1BfMzBfREFZUyIsCiAgICAgICAgICAgICAgICAgICAiUkVBU09OX0ZPUl9OT19TVVJHRVJZIiwgIkRYX1JBRF9TVEFSVEVEX0RBWVMiLCAiUlhfU1VNTV9SQURJQVRJT04iLCAiUkFEX0xPQ0FUSU9OX09GX1JYIiwKICAgICAgICAgICAgICAgICAgICJSQURfVFJFQVRfVk9MIiwgIlJBRF9SRUdJT05BTF9SWF9NT0RBTElUWSIsICJSQURfUkVHSU9OQUxfRE9TRV9DR1kiLCAiUkFEX0JPT1NUX1JYX01PREFMSVRZIiwKICAgICAgICAgICAgICAgICAgICJSQURfQk9PU1RfRE9TRV9DR1kiLCAiUkFEX05VTV9UUkVBVF9WT0wiLCAiUlhfU1VNTV9TVVJHUkFEX1NFUSIsICJSQURfRUxBUFNFRF9SWF9EQVlTIiwKICAgICAgICAgICAgICAgICAgICJSRUFTT05fRk9SX05PX1JBRElBVElPTiIsICJEWF9TWVNURU1JQ19TVEFSVEVEX0RBWVMiLCAiRFhfQ0hFTU9fU1RBUlRFRF9EQVlTIiwgIlJYX1NVTU1fQ0hFTU8iLAogICAgICAgICAgICAgICAgICAgIkRYX0hPUk1PTkVfU1RBUlRFRF9EQVlTIiwgIlJYX1NVTU1fSE9STU9ORSIsICJEWF9JTU1VTk9fU1RBUlRFRF9EQVlTIiwgIlJYX1NVTU1fSU1NVU5PVEhFUkFQWSIsCiAgICAgICAgICAgICAgICAgICAiUlhfU1VNTV9UUk5TUExOVF9FTkRPIiwgIlJYX1NVTU1fU1lTVEVNSUNfU1VSX1NFUSIsICJEWF9PVEhFUl9TVEFSVEVEX0RBWVMiLCAiUlhfU1VNTV9PVEhFUiIsCiAgICAgICAgICAgICAgICAgICAiUEFMTElBVElWRV9DQVJFIiwgIlJYX1NVTU1fVFJFQVRNRU5UX1NUQVRVUyIsICJQVUZfMzBfREFZX01PUlRfQ0QiLCAiUFVGXzkwX0RBWV9NT1JUX0NEIiwKICAgICAgICAgICAgICAgICAgICJEWF9MQVNUQ09OVEFDVF9ERUFUSF9NT05USFMiLCAiUFVGX1ZJVEFMX1NUQVRVUyIsICJSWF9IT1NQX1NVUkdfUFJJTV9TSVRFIiwgIlJYX0hPU1BfQ0hFTU8iLAogICAgICAgICAgICAgICAgICAgIlJYX0hPU1BfSU1NVU5PVEhFUkFQWSIsICJSWF9IT1NQX0hPUk1PTkUiLCAiUlhfSE9TUF9PVEhFUiIsICJQVUZfTVVMVF9TT1VSQ0UiLCAiUkVGRVJFTkNFX0RBVEVfRkxBRyIsCiAgICAgICAgICAgICAgICAgICAiUlhfU1VNTV9TQ09QRV9SRUdfTE5fMjAxMiIsICJSWF9IT1NQX0RYU1RHX1BST0MiLCAiUEFMTElBVElWRV9DQVJFX0hPU1AiLCAiVFVNT1JfU0laRV9TVU1NQVJZIiwKICAgICAgICAgICAgICAgICAgICJNRVRTX0FUX0RYX09USEVSIiwgIk1FVFNfQVRfRFhfRElTVEFOVF9MTiIsICJNRVRTX0FUX0RYX0JPTkUiLCAiTUVUU19BVF9EWF9CUkFJTiIsCiAgICAgICAgICAgICAgICAgICAiTUVUU19BVF9EWF9MSVZFUiIsICJNRVRTX0FUX0RYX0xVTkciLCAiTk9fSFNEX1FVQVJfMTYiLCAiTUVEX0lOQ19RVUFSXzE2IiwgIk1FRElDQUlEX0VYUE5fQ09ERSIpCgoKCiNSZWFkIGluIGRhdGEgZm9yIGVhY2ggc3Vic2l0ZQpsaXAgPC0gcmVhZF9md2YoJ05DREJQVUZfTGlwLjMuMjAxNi4wLmRhdCcsIAogICAgICAgICAgICAgICAgICAgICAgIGZ3Zl93aWR0aHMoY29sLndpZHRoLCBjb2xfbmFtZXMgPSBjb2wubmFtZXMuYWJyKSwKICAgICAgICAgICAgICAgICAgICAgICBjb2xfdHlwZXMgPSBjb2xzKC5kZWZhdWx0ID0gY29sX2NoYXJhY3RlcigpKSkKCm1lbGFub21hIDwtIHJlYWRfZndmKCdOQ0RCUFVGX01lbGFub21hLjMuMjAxNi4wLmRhdCcsIAogICAgICAgICAgICAgICAgICAgICAgIGZ3Zl93aWR0aHMoY29sLndpZHRoLCBjb2xfbmFtZXMgPSBjb2wubmFtZXMuYWJyKSwKICAgICAgICAgICAgICAgICAgICAgICBjb2xfdHlwZXMgPSBjb2xzKC5kZWZhdWx0ID0gY29sX2NoYXJhY3RlcigpKSkKICAgICAgICAgICAgICAgICAgICAgICAKc2tpbiA8LSByZWFkX2Z3ZignTkNEQlBVRl9PdFNraW4uMy4yMDE2LjAuZGF0JywgCiAgICAgICAgICAgICAgICAgICAgICAgZndmX3dpZHRocyhjb2wud2lkdGgsIGNvbF9uYW1lcyA9IGNvbC5uYW1lcy5hYnIpLAogICAgICAgICAgICAgICAgICAgICAgIGNvbF90eXBlcyA9IGNvbHMoLmRlZmF1bHQgPSBjb2xfY2hhcmFjdGVyKCkpKQoKaG9kZ2V4dHIgPC0gcmVhZF9md2YoJ05DREJQVUZfSG9kZ0V4dHIuMy4yMDE2LjAuZGF0JywgCiAgICAgICAgICAgICAgICAgICAgICAgZndmX3dpZHRocyhjb2wud2lkdGgsIGNvbF9uYW1lcyA9IGNvbC5uYW1lcy5hYnIpLAogICAgICAgICAgICAgICAgICAgICAgIGNvbF90eXBlcyA9IGNvbHMoLmRlZmF1bHQgPSBjb2xfY2hhcmFjdGVyKCkpKQoKaG9kZ25kYWwgPC0gcmVhZF9md2YoJ05DREJQVUZfSG9kZ05kYWwuMy4yMDE2LjAuZGF0JywgCiAgICAgICAgICAgICAgICAgICAgICAgZndmX3dpZHRocyhjb2wud2lkdGgsIGNvbF9uYW1lcyA9IGNvbC5uYW1lcy5hYnIpLAogICAgICAgICAgICAgICAgICAgICAgIGNvbF90eXBlcyA9IGNvbHMoLmRlZmF1bHQgPSBjb2xfY2hhcmFjdGVyKCkpKQoKTkhMbmRhbCA8LSByZWFkX2Z3ZignTkNEQlBVRl9OSExOZGFsLjMuMjAxNi4wLmRhdCcsIAogICAgICAgICAgICAgICAgICAgICAgIGZ3Zl93aWR0aHMoY29sLndpZHRoLCBjb2xfbmFtZXMgPSBjb2wubmFtZXMuYWJyKSwKICAgICAgICAgICAgICAgICAgICAgICBjb2xfdHlwZXMgPSBjb2xzKC5kZWZhdWx0ID0gY29sX2NoYXJhY3RlcigpKSkKCmJyZWFzdCA8LSAgcmVhZF9md2YoJ05DREJQVUZfQnJlYXN0LjMuMjAxNi4wLmRhdCcsIAogICAgICAgICAgICAgICAgICAgICAgIGZ3Zl93aWR0aHMoY29sLndpZHRoLCBjb2xfbmFtZXMgPSBjb2wubmFtZXMuYWJyKSwKICAgICAgICAgICAgICAgICAgICAgICBjb2xfdHlwZXMgPSBjb2xzKC5kZWZhdWx0ID0gY29sX2NoYXJhY3RlcigpKSkKCnZ1bHZhIDwtICByZWFkX2Z3ZignTkNEQlBVRl9WdWx2YS4zLjIwMTYuMC5kYXQnLCAKICAgICAgICAgICAgICAgICAgICAgICBmd2Zfd2lkdGhzKGNvbC53aWR0aCwgY29sX25hbWVzID0gY29sLm5hbWVzLmFiciksCiAgICAgICAgICAgICAgICAgICAgICAgY29sX3R5cGVzID0gY29scyguZGVmYXVsdCA9IGNvbF9jaGFyYWN0ZXIoKSkpCgp2YWdpbmEgPC0gIHJlYWRfZndmKCdOQ0RCUFVGX1ZhZ2luYS4zLjIwMTYuMC5kYXQnLCAKICAgICAgICAgICAgICAgICAgICAgICBmd2Zfd2lkdGhzKGNvbC53aWR0aCwgY29sX25hbWVzID0gY29sLm5hbWVzLmFiciksCiAgICAgICAgICAgICAgICAgICAgICAgY29sX3R5cGVzID0gY29scyguZGVmYXVsdCA9IGNvbF9jaGFyYWN0ZXIoKSkpCgpwZW5pcyA8LSAgcmVhZF9md2YoJ05DREJQVUZfUGVuaXMuMy4yMDE2LjAuZGF0JywgCiAgICAgICAgICAgICAgICAgICAgICAgZndmX3dpZHRocyhjb2wud2lkdGgsIGNvbF9uYW1lcyA9IGNvbC5uYW1lcy5hYnIpLAogICAgICAgICAgICAgICAgICAgICAgIGNvbF90eXBlcyA9IGNvbHMoLmRlZmF1bHQgPSBjb2xfY2hhcmFjdGVyKCkpKQoKI0NvbWJpbmUgZGF0YSBmb3IgYWxsIHN1YnNpdGVzCmRhdCA8LSBiaW5kX3Jvd3MobGlwLCBtZWxhbm9tYSwgc2tpbiwgaG9kZ2V4dHIsIGhvZGduZGFsLCBOSExuZGFsLCBicmVhc3QsIAogICAgICAgICAgICAgICAgIHZ1bHZhLCB2YWdpbmEsIHBlbmlzKQoKcm0obGlwLCBtZWxhbm9tYSwgc2tpbiwgaG9kZ2V4dHIsIGhvZGduZGFsLCBOSExuZGFsLCBicmVhc3QsIHZ1bHZhLCB2YWdpbmEsIHBlbmlzKQoKcHJpbV9zaXRlX3RleHQgPC0gZGF0YV9mcmFtZShQUklNQVJZX1NJVEUgPSBjKAojTkhMIHNpdGVzCiJDMDk4IiwKIkMwOTkiLAoiQzExMSIsCiJDMTQyIiwKIkMzNzkiLAoiQzQyMiIsCiJDNzcwIiwKIkM3NzEiLAoiQzc3MiIsCiJDNzczIiwKIkM3NzQiLAogIkM3NzUiLAoiQzc3OCIsCiJDNzc5IiksCgpTSVRFX1RFWFQgPSBjKAogICJDMDkuOCBUb25zaWw6IE92ZXJsYXBwaW5nIiwKICAiQzA5LjkgPSBUb25zaWwgTk9TIiwKICAiQzExLjEgTmFzb3BoYXJ5bng6IFBvc3RlciBXYWxsIiwgCiAgIkMxNC4yIFdhbGRleWVyIFJpbmciLAogICJDMzcuOSBUaHltdXMiLAogICJDNDIuMiBTcGxlZW4iLAogICJDNzcuMCBMeW1waCBOb2RlczogSGVhZEZhY2VOZWNrIiwKICAiQzc3LjEgSW50cmF0aG9yYWNpYyBMeW1waCBOb2RlcyIsCiAgIkM3Ny4yIEludHJhLWFiZG9taW5hbCBMeW1waE5vZGVzIiwKICAiQzc3LjMgTHltcGggTm9kZXMgb2YgYXhpbGxhIG9yIGFybSAiLAogICJDNzcuNCBMeW1waCBOb2RlczogTGVnIiwKICAiQzc3LjUgUGVsdmljIEx5bXBoIE5vZGVzIiwKICAiQzc3LjggTHltcGggTm9kZXM6IG11bHRpcGxlIHJlZ2lvbiIsCiAgIkM3Ny45IEx5bXBoIE5vZGUgTk9TIikpCgoKZGF0IDwtIG1lcmdlKGRhdCwgcHJpbV9zaXRlX3RleHQsIGJ5ID0gIlBSSU1BUllfU0lURSIsIGFsbC54ID0gVFJVRSkgCiAKcm0ocHJpbV9zaXRlX3RleHQpCgojIGNvbnZlcnQgbnVtZXJpYyB2YXJpYWJsZXMgZnJvbSBjaGFyYWN0ZXIgY2xhc3MgdG8gbnVtZXJpYyBjbGFzcwpudW1fdmFycyA8LSBjKCJBR0UiLCAiQ1JPV0ZMWSIsICJUVU1PUl9TSVpFIiwgIkRYX1NUQUdJTkdfUFJPQ19EQVlTIiwgIkRYX1JYX1NUQVJURURfREFZUyIsICJEWF9TVVJHX1NUQVJURURfREFZUyIsCiAgICAgICAgICAgICAgIkRYX0RFRlNVUkdfU1RBUlRFRF9EQVlTIiwgIlNVUkdfRElTQ0hBUkdFX0RBWVMiLCAiRFhfUkFEX1NUQVJURURfREFZUyIsICAiUkFEX1JFR0lPTkFMX0RPU0VfQ0dZIiwKICAgICAgICAgICAgICAiUkFEX0JPT1NUX0RPU0VfQ0dZIiwgIlJBRF9FTEFQU0VEX1JYX0RBWVMiLCAiRFhfU1lTVEVNSUNfU1RBUlRFRF9EQVlTIiwgIkRYX0NIRU1PX1NUQVJURURfREFZUyIsIAogICAgICAgICAgICAgICJEWF9IT1JNT05FX1NUQVJURURfREFZUyIsICJEWF9PVEhFUl9TVEFSVEVEX0RBWVMiLCAiRFhfTEFTVENPTlRBQ1RfREVBVEhfTU9OVEhTIiwKICAgICAgICAgICAgICAiUkFEX05VTV9UUkVBVF9WT0wiKQoKZGF0W251bV92YXJzXSA8LSBsYXBwbHkoZGF0W251bV92YXJzXSwgYXMubnVtZXJpYykKCgojIGNvbnZlcnQgZmFjdG9yIHZhcmlhYmxlcyBmcm9tIGNoYXJhY3RlciBjbGFzcyB0byBmYWN0b3IgY2xhc3MKdmFycyA8LSBuYW1lcyhkYXQpCmZhY3RfdmFycyA8LSB2YXJzWyEodmFycyAlaW4lIG51bV92YXJzKV0gIyBiYXNpY2FsbHkgYWxsIG9mIHRoZSBub24tbnVtZXJpY3MKCmRhdFtmYWN0X3ZhcnNdIDwtIGxhcHBseShkYXRbZmFjdF92YXJzXSwgYXMuY2hhcmFjdGVyKQpkYXRbZmFjdF92YXJzXSA8LSBsYXBwbHkoZGF0W2ZhY3RfdmFyc10sIGFzLmZhY3RvcikKCmRhdCA8LSBkYXQgJT4lCiAgICAgICAgbXV0YXRlKEZBQ0lMSVRZX1RZUEVfRiA9IGZjdF9yZWNvZGUoRkFDSUxJVFlfVFlQRV9DRCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiQ29tbXVuaXR5IENhbmNlciBQcm9ncmFtIiA9ICIxIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiQ29tcHJlaGVuc2l2ZSBDb21tIENhIFByb2dyYW0iID0gIjIiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJBY2FkZW1pYy9SZXNlYXJjaCBQcm9ncmFtIiA9ICIzIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiSW50ZWdyYXRlZCBOZXR3b3JrIENhIFByb2dyYW0iID0gIjQiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJPdGhlciIgPSAiOSIpKSAlPiUKICAgICAgICBtdXRhdGUoRkFDSUxJVFlfTE9DQVRJT05fRiA9IGZjdF9yZWNvZGUoRkFDSUxJVFlfTE9DQVRJT05fQ0QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk5ldyBFbmdsYW5kIiA9ICIxIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTWlkZGxlIEF0bGFudGljIiA9ICIyIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiU291dGggQXRsYW50aWMiID0gIjMiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJFYXN0IE5vcnRoIENlbnRyYWwiID0gIjQiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJFYXN0IFNvdXRoIENlbnRyYWwiID0gIjUiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJXZXN0IE5vcnRoIENlbnRyYWwiID0gIjYiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJXZXN0IFNvdXRoIENlbnRyYWwiID0gIjciLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJNb3VudGFpbiIgPSAiOCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlBhY2lmaWMiID0gIjkiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJvdXQgb2YgVVMiID0gIjAiKSkgJT4lCiAgICAgICAgbXV0YXRlKEZBQ0lMSVRZX0dFT0dSQVBIWSA9IGZjdF9jb2xsYXBzZShGQUNJTElUWV9MT0NBVElPTl9DRCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJOb3J0aGVhc3QiID0gYygiMSIsICIyIiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiU291dGgiID0gYygiMyIsICI3IiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTWlkd2VzdCIgPSBjKCI0IiwgIjUiLCAiNiIpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIldlc3QiID0gYygiOCIsICI5IikpKSAlPiUKICAgICAgICBtdXRhdGUoQUdFX0YgPSBjdXQoQUdFLCBjKDAsIDU0LCA2NCwgNzQsIDEwMCkpKSAlPiUKICAgICAgICBtdXRhdGUoQUdFXzQwID0gY3V0KEFHRSwgYygwLCA0MCwgMTAwKSkpICU+JQogICAgICAgIG11dGF0ZShTRVhfRiA9IGZjdF9yZWNvZGUoU0VYLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJNYWxlIiA9ICIxIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRmVtYWxlIiA9ICIyIikpICU+JQogICAgICAgIG11dGF0ZShSQUNFX0YgPSBmY3RfY29sbGFwc2UoUkFDRSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiV2hpdGUiID0gYygiMDEiKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiQmxhY2siID0gYygiMDIiKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiQXNpYW4iID0gYygiMDQiLCAiMDUiLCAiMDYiLCAiMDciLCAiMDgiLCAiMTAiLCAiMTEiLCAiMTIiLCAiMTMiLCAiMTQiLCAiMTUiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIxNiIsICIxNyIsICIyMCIsICIyMSIsICIyMiIsICIyNSIsICIyNiIsICIyNyIsICIyOCIsICIzMCIsICIzMSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjMyIiwgIjk2IiwgIjk3IiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk90aGVyL1VuayIgPSBjKCIwMyIsICI5OCIsICI5OSIpKSkgJT4lCiAgICAgICAgbXV0YXRlKEhJU1BBTklDID0gZmN0X2NvbGxhcHNlKFNQQU5JU0hfSElTUEFOSUNfT1JJR0lOLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiWWVzIiA9IGMoIjEiLCAiMiIsICIzIiwgIjQiLCAiNSIsICI2IiwgIjciLCAiOCIpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTm8iID0gYygiMCIpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVW5rbm93biIgPSBjKCI5IikpKSAlPiUKICAgICAgICBtdXRhdGUoSU5TVVJBTkNFX0YgPSBmY3RfcmVjb2RlKElOU1VSQU5DRV9TVEFUVVMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk5vbmUiID0gIjAiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJQcml2YXRlIiA9ICIxIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTWVkaWNhaWQiID0gIjIiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJNZWRpY2FyZSIgPSAiMyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk90aGVyIEdvdmVybm1lbnQiID0gIjQiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJVbmtub3duIiA9ICI5IikpICU+JQogICAgICAgIG11dGF0ZShJTlNVUkFOQ0VfRiA9IGZjdF9yZWxldmVsKElOU1VSQU5DRV9GLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJQcml2YXRlIikpICU+JQogICAgICAgIG11dGF0ZShJTkNPTUVfRiA9IGZjdF9yZWNvZGUoTUVEX0lOQ19RVUFSXzEyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJMZXNzIHRoYW4gJDM4LDAwMCIgPSAiMSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiQzOCwwMDAgLSAkNDcsOTk5IiA9ICIyIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiJDQ4LDAwMCAtICQ2Miw5OTkiID0gIjMiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIkNjMsMDAwICsiID0gIjQiKSkgJT4lCiAgICAgICAgbXV0YXRlKEVEVUNBVElPTl9GID0gZmN0X3JlY29kZShOT19IU0RfUVVBUl8xMiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIyMSUgb3IgbW9yZSIgPSAiMSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiMTMgLSAyMC45JSIgPSAiMiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiNyAtIDEyLjklIiA9ICIzIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJMZXNzIHRoYW4gNyUiID0gIjQiKSkgJT4lCiAgICAgICAgbXV0YXRlKFVfUl9GID0gZmN0X2NvbGxhcHNlKFVSX0NEXzEzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTWV0cm8iID0gYygiMSIsICIyIiwgIjMiKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlVyYmFuIiA9IGMoIjQiLCAiNSIsICI2IiwgIjciKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlJ1cmFsIiA9IGMoIjgiLCAiOSIpKSkgJT4lCiAgICAgICAgbXV0YXRlKENMQVNTX09GX0NBU0VfRiA9IGZjdF9jb2xsYXBzZShDTEFTU19PRl9DQVNFLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWxsX1BhcnRfUHJpbSA9IGMoIjEwIiwgIjExIiwgIjEyIiwgIjEzIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIxNCIsICIyMCIsICIyMSIsICIyMiIpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT3RoZXJfRmFjaWxpdHkgPSBjKCIwMCIpKSkgJT4lCiAgICAgICAgbXV0YXRlKEdSQURFX0YgPSBmY3RfcmVjb2RlKEdSQURFLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkdyIEk6IFdlbGwgRGlmZiIgPSAiMSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiR3IgSUk6IE1vZCBEaWZmIiA9ICIyIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJHciBJSUk6IFBvb3IgRGlmZiIgPSAiMyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiR3IgSVY6IFVuZGlmZi9BbmFwbGFzdGljIiA9ICI0IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJOQS9Vbmtvd24iID0gIjkiKSkgJT4lCiAgICAgICAgbXV0YXRlKEhJU1RPTE9HWV9GID0gZmN0X2luZnJlcShISVNUT0xPR1kpKSAlPiUKICAgICAgICBtdXRhdGUoSElTVE9MT0dZX0YgPSBmYWN0b3IoSElTVE9MT0dZX0YpKSAlPiUKICAgICAgICBtdXRhdGUoSElTVE9MT0dZX0ZfTElNID0gZmN0X2x1bXAoSElTVE9MT0dZX0YsIHByb3AgPSAwLjA1KSkgJT4lCiAgICAgICAgbXV0YXRlKFROTV9DTElOX1QgPSBmY3RfcmVjb2RlKFROTV9DTElOX1QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJOX0EiID0gIjg4IikpICU+JQogICAgICAgIG11dGF0ZShUTk1fQ0xJTl9UID0gZmN0X3JlbGV2ZWwoVE5NX0NMSU5fVCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIxIikpICU+JQogICAgICAgIG11dGF0ZShUTk1fQ0xJTl9OID0gZmN0X3JlY29kZShUTk1fQ0xJTl9OLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTl9BIiA9ICI4OCIpKSAlPiUKICAgICAgICBtdXRhdGUoVE5NX0NMSU5fTSA9IGZjdF9yZWNvZGUoVE5NX0NMSU5fTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk5fQSIgPSAiODgiKSkgJT4lCiAgICAgICAgbXV0YXRlKFROTV9QQVRIX1QgPSBmY3RfcmVjb2RlKFROTV9QQVRIX1QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJOX0EiID0gIjg4IikpICU+JQogICAgICAgIG11dGF0ZShUTk1fUEFUSF9UID0gZmN0X3JlbGV2ZWwoVE5NX1BBVEhfVCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIxIikpICU+JQogICAgICAgIG11dGF0ZShUTk1fUEFUSF9OID0gZmN0X3JlY29kZShUTk1fUEFUSF9OLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTl9BIiA9ICI4OCIpKSAlPiUKICAgICAgICBtdXRhdGUoVE5NX1BBVEhfTSA9IGZjdF9yZWNvZGUoVE5NX1BBVEhfTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk5fQSIgPSAiODgiKSkgJT4lCiAgICAgICAgbXV0YXRlKFROTV9DTElOX1NUQUdFX0dST1VQID0gZmN0X3JlY29kZShUTk1fQ0xJTl9TVEFHRV9HUk9VUCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk5fQSIgPSAiODgiKSkgJT4lCiAgICAgICAgbXV0YXRlKFROTV9QQVRIX1NUQUdFX0dST1VQID0gZmN0X3JlY29kZShUTk1fUEFUSF9TVEFHRV9HUk9VUCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk5fQSIgPSAiODgiKSkgJT4lCiAgICAgICAgbXV0YXRlKE1BUkdJTlMgPSBmY3RfcmVjb2RlKFJYX1NVTU1fU1VSR0lDQUxfTUFSR0lOUywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk5vIFJlc2lkdWFsIiA9ICIwIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlJlc2lkdWFsLCBOT1MiID0gIjEiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTWljcm9zY29waWMgUmVzaWQiID0gIjIiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTWFjcm9zY29waWMgUmVzaWQiID0gIjMiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTm90IGV2YWx1YWJsZSIgPSAiNyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJObyBzdXJnIiA9ICI4IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlVua25vd24iID0gIjkiKSkgJT4lCiAgICAgICAgbXV0YXRlKE1BUkdJTlNfWU4gPSBmY3RfY29sbGFwc2UoUlhfU1VNTV9TVVJHSUNBTF9NQVJHSU5TLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJZZXMiID0gYygiMSIsICIyIiwgIjMiKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTm8iID0gYygiMCIpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJObyBzdXJnL1Vuay9OQSIgPSBjKCI3IiwgIjgiLCAiOSIpKSkgJT4lCiAgICAgICAgbXV0YXRlKFJFQURNX0hPU1BfMzBfREFZU19GID0gZmN0X3JlY29kZShSRUFETV9IT1NQXzMwX0RBWVMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTm9fU3VyZ19vcl9Ob19SZWFkbWl0IiA9ICIwIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJVbnBsYW5fUmVhZG1pdF9TYW1lIiA9ICIxIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJQbGFuX1JlYWRtaXRfU2FtZSIgPSAiMiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUGxhblVucGxhbl9TYW1lIiA9ICIzIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJVbmtub3duIiA9ICI0IikpICU+JQogICAgICAgIG11dGF0ZShSWF9TVU1NX1JBRElBVElPTl9GID0gZmN0X3JlY29kZShSWF9TVU1NX1JBRElBVElPTiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk5vbmUiID0gIjAiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiQmVhbSBSYWRpYXRpb24iID0gIjEiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUmFkaW9hY3RpdmUgSW1wbGFudHMiID0gIjIiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUmFkaW9pc290b3BlcyIgPSAiMyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJCZWFtICsgSW1wIG9yIElzb3RvcGVzIiA9ICI0IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlJhZGlhdGlvbiwgTk9TIiA9ICI1IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlVua25vd24iID0gIjkiKSkgJT4lCiAgICAgICAgbXV0YXRlKFBVRl8zMF9EQVlfTU9SVF9DRF9GID0gZmN0X3JlY29kZShQVUZfMzBfREFZX01PUlRfQ0QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiQWxpdmVfMzAiID0gIjAiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkRlYWRfMzAiID0gIjEiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlVua25vd24iID0gIjkiKSkgJT4lCiAgICAgICAgbXV0YXRlKFBVRl85MF9EQVlfTU9SVF9DRF9GID0gZmN0X3JlY29kZShQVUZfOTBfREFZX01PUlRfQ0QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiQWxpdmVfOTAiID0gIjAiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkRlYWRfOTAiID0gIjEiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlVua25vd24iID0gIjkiKSkgJT4lCiAgICAgICAgbXV0YXRlKExZTVBIX1ZBU0NVTEFSX0lOVkFTSU9OX0YgPSBmY3RfcmVjb2RlKExZTVBIX1ZBU0NVTEFSX0lOVkFTSU9OLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTmVnX0x5bXBoVmFzY19JbnYiID0gIjAiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUG9zX0x1bXBoVmFzY19JbnYiID0gIjEiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTl9BIiA9ICI4IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlVua25vd24iID0gIjkiKSkgJT4lCiAgICAgICAgbXV0YXRlKFJYX0hPU1BfU1VSR19BUFBSXzIwMTBfRiA9IGZjdF9yZWNvZGUoUlhfSE9TUF9TVVJHX0FQUFJfMjAxMCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTm9fU3VyZyIgPSAiMCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlJvYm90X0Fzc2lzdCIgPSAiMSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlJvYm90X3RvX09wZW4iID0gIjIiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJFbmRvX0xhcCIgPSAiMyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkVuZG9fTGFwX3RvX09wZW4iID0gIjQiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJPcGVuX1Vua25vd24iID0gIjUiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJVbmtub3duIiA9ICI5IikpICU+JQogICAgICAgIG11dGF0ZShBbGwgPSAiQWxsIikgJT4lCiAgICAgICAgbXV0YXRlKEFsbCA9IGZhY3RvcihBbGwpKSAlPiUKICAgICAgICBtdXRhdGUoUkVBU09OX0ZPUl9OT19TVVJHRVJZX0YgPSBmY3RfcmVjb2RlKFJFQVNPTl9GT1JfTk9fU1VSR0VSWSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJTdXJnIHBlcmZvcm1lZCIgPSAiMCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiU3VyZyBub3QgcmVjb21tZW5kZWQiID0gIjEiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk5vIHN1cmcgZHVlIHRvIHB0IGZhY3RvcnMiID0gIjIiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk5vIHN1cmcsIHB0IGRpZWQiID0gIjUiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlN1cmcgcmVjLCBub3QgZG9uZSIgPSAiNiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiU3VyZyByZWMsIHB0IHJlZnVzZWQiID0gIjciLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlN1cmcgcmVjLCB1bmsgaWYgZG9uZSIgPSAiOCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVW5rbm93biIgPSAiOSIpKSAlPiUKICAgICAgICBtdXRhdGUoU1VSR0VSWV9ZTiA9IGlmZWxzZShSRUFTT05fRk9SX05PX1NVUkdFUlkgPT0gIjAiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJZZXMiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmZWxzZShSRUFTT05fRk9SX05PX1NVUkdFUlkgPT0gIjkiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVWtuIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk5vIikpKSAlPiUKICAgICAgICBtdXRhdGUoU1VSR19URiA9IGNhc2Vfd2hlbihTVVJHRVJZX1lOID09ICJZZXMiIH4gVFJVRSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTVVJHRVJZX1lOID09ICJObyIgfiBGQUxTRSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUUlVFIH4gTkEpKSAgJT4lCiAgICAgICAgbXV0YXRlKFJFQVNPTl9GT1JfTk9fUkFESUFUSU9OX0YgPSBmY3RfcmVjb2RlKFJFQVNPTl9GT1JfTk9fUkFESUFUSU9OLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlJhZCBwZXJmb3JtZWQiID0gIjAiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlJhZCBub3QgcmVjb21tZW5kZWQiID0gIjEiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk5vIFJhZCBkdWUgdG8gcHQgZmFjdG9ycyIgPSAiMiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTm8gUmFkLCBwdCBkaWVkIiA9ICI1IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJSYWQgcmVjLCBub3QgZG9uZSIgPSAiNiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUmFkIHJlYywgcHQgcmVmdXNlZCIgPSAiNyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUmFkIHJlYywgdW5rIGlmIGRvbmUiID0gIjgiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlVua25vd24iID0gIjkiKSkgJT4lCiAgICAgICAgbXV0YXRlKFJBRElBVElPTl9ZTiA9IGlmZWxzZShSRUFTT05fRk9SX05PX1JBRElBVElPTiA9PSAiMCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlllcyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZlbHNlKFJFQVNPTl9GT1JfTk9fUkFESUFUSU9OID09ICI5IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTkEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJObyIpKSkgJT4lCiAgICAgICAgbXV0YXRlKFNVUkdSQURfU0VRX0YgPSBmY3RfcmVjb2RlKFJYX1NVTU1fU1VSR1JBRF9TRVEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJOb25lIG9yIFN1cmcgb3IgUmFkIiA9ICIwIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlJhZCBiZWZvcmUgU3VyZyIgPSAiMiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJTdXJnIGJlZm9yZSBSYWQiID0gIjMiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUmFkIGJlZm9yZSBhbmQgYWZ0ZXIgU3VyZyIgPSAiNCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJJbnRyYW9wIFJhZCIgPSAiNSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJJbnRyYW9wIFJhZCBwbHVzIG90aGVyIiA9ICI2IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlVua25vd24iID0gIjkiKSkgJT4lCiAgICAgICAgbXV0YXRlKFNVUkdfUkFEX1NFUSA9IGlmZWxzZShTVVJHRVJZX1lOID09ICJZZXMiICYgUlhfU1VNTV9TVVJHUkFEX1NFUSA9PSAiMCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiU3VyZyBBbG9uZSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZmVsc2UoUkFESUFUSU9OX1lOID09ICJZZXMiICYgUlhfU1VNTV9TVVJHUkFEX1NFUSA9PSAiMCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlJhZCBBbG9uZSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZlbHNlKFNVUkdFUllfWU4gPT0gIk5vIiAmIFJBRElBVElPTl9ZTiA9PSAiTm8iICYgUlhfU1VNTV9TVVJHUkFEX1NFUSA9PSAiMCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJObyBUcmVhdG1lbnQiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZmVsc2UoUlhfU1VNTV9TVVJHUkFEX1NFUSA9PSAiMiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUmFkIHRoZW4gU3VyZyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZmVsc2UoUlhfU1VNTV9TVVJHUkFEX1NFUSA9PSAiMyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlN1cmcgdGhlbiBSYWQiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmZWxzZShSWF9TVU1NX1NVUkdSQURfU0VRID09ICI0IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlJhZCBiZWZvcmUgYW5kIGFmdGVyIFN1cmciLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiT3RoZXIiKSkpKSkpKSAlPiUKICAgICAgICBtdXRhdGUoU1VSR19SQURfU0VRID0gZmN0X3JlbGV2ZWwoU1VSR19SQURfU0VRLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiU3VyZyBBbG9uZSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJTdXJnIHRoZW4gUmFkIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlJhZCBBbG9uZSIpKSAlPiUKICAgICAgICBtdXRhdGUoQ0hFTU9fWU4gPSBmY3RfY29sbGFwc2UoUlhfU1VNTV9DSEVNTywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk5vIiA9IGMoIjAwIiwgIjgyIiwgIjg1IiwgIjg2IiwgIjg3IiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJZZXMiID0gYygiMDEiLCAiMDIiLCAiMDMiKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlVrbiIgPSBjKCI4OCIsICI5OSIpKSkgJT4lCiAgICAgICAgbXV0YXRlKFNVUkdfUkFEX1NFUV9DID0gaWZlbHNlKFNVUkdFUllfWU4gPT0gIlllcyIgJiBSWF9TVU1NX1NVUkdSQURfU0VRID09ICIwIiAmIENIRU1PX1lOID09ICJObyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiU3VyZywgTm8gcmFkLCBObyBDaGVtbyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZmVsc2UoUkFESUFUSU9OX1lOID09ICJZZXMiICYgUlhfU1VNTV9TVVJHUkFEX1NFUSA9PSAiMCIgJiBDSEVNT19ZTiA9PSAiTm8iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJSYWQsIE5vIFN1cmcsIE5vIENoZW1vIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZmVsc2UoU1VSR0VSWV9ZTiA9PSAiTm8iICYgUkFESUFUSU9OX1lOID09ICJObyIgJiBSWF9TVU1NX1NVUkdSQURfU0VRID09ICIwIiAmIENIRU1PX1lOID09ICJObyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJObyBTdXJnLCBObyBSYWQsIE5vIENoZW1vIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZlbHNlKFJYX1NVTU1fU1VSR1JBRF9TRVEgPT0gIjIiICYgQ0hFTU9fWU4gPT0gIk5vIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJSYWQgdGhlbiBTdXJnLCBObyBDaGVtbyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZmVsc2UoUlhfU1VNTV9TVVJHUkFEX1NFUSA9PSAiMyIgJiBDSEVNT19ZTiA9PSAiTm8iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJTdXJnIHRoZW4gUmFkLCBObyBDaGVtbyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZlbHNlKFJYX1NVTU1fU1VSR1JBRF9TRVEgPT0gIjQiICYgQ0hFTU9fWU4gPT0gIk5vIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlJhZCBiZWZvcmUgYW5kIGFmdGVyIFN1cmcsIE5vIENoZW1vIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZmVsc2UoU1VSR0VSWV9ZTiA9PSAiWWVzIiAmIFJYX1NVTU1fU1VSR1JBRF9TRVEgPT0gIjAiICYgQ0hFTU9fWU4gPT0gIlllcyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJTdXJnLCBObyByYWQsIFllcyBDaGVtbyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmZWxzZShSQURJQVRJT05fWU4gPT0gIlllcyIgJiBSWF9TVU1NX1NVUkdSQURfU0VRID09ICIwIiAmIENIRU1PX1lOID09ICJZZXMiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlJhZCwgTm8gU3VyZywgWWVzIENoZW1vIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmZWxzZShTVVJHRVJZX1lOID09ICJObyIgJiBSQURJQVRJT05fWU4gPT0gIk5vIiAmIFJYX1NVTU1fU1VSR1JBRF9TRVEgPT0gIjAiICYgQ0hFTU9fWU4gPT0gIlllcyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk5vIFN1cmcsIE5vIFJhZCwgWWVzIENoZW1vIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZmVsc2UoUlhfU1VNTV9TVVJHUkFEX1NFUSA9PSAiMiIgJiBDSEVNT19ZTiA9PSAiWWVzIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlJhZCB0aGVuIFN1cmcsIFllcyBDaGVtbyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmZWxzZShSWF9TVU1NX1NVUkdSQURfU0VRID09ICIzIiAmIENIRU1PX1lOID09ICJZZXMiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlN1cmcgdGhlbiBSYWQsIFllcyBDaGVtbyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZmVsc2UoUlhfU1VNTV9TVVJHUkFEX1NFUSA9PSAiNCIgJiBDSEVNT19ZTiA9PSAiWWVzIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUmFkIGJlZm9yZSBhbmQgYWZ0ZXIgU3VyZywgWWVzIENoZW1vIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiT3RoZXIiKSkpKSkpKSkpKSkpKSAlPiUKICAgICAgICBtdXRhdGUoU1VSR19SQURfU0VRX0MgPSBmY3RfaW5mcmVxKFNVUkdfUkFEX1NFUV9DKSkgJT4lCiAgICAgICAgbXV0YXRlKFRfU0laRSA9IGFzLm51bWVyaWMoVFVNT1JfU0laRSkpICU+JQogICAgICAgIG11dGF0ZShUX1NJWkUgPSBpZmVsc2UoVF9TSVpFID09IDAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk5vIFR1bW9yIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZmVsc2UoVF9TSVpFID4gMCAmIFRfU0laRSA8IDEwIHwgVF9TSVpFID09IDk5MSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjwgMSBjbSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmZWxzZShUX1NJWkUgPj0gMTAgJiBUX1NJWkUgPCAyMCB8IFRfU0laRSA9PSA5OTIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiMS0yIGNtIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmZWxzZShUX1NJWkUgPj0gMjAgJiBUX1NJWkUgPCAzMCB8IFRfU0laRSA9PSA5OTMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjItMyBjbSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZlbHNlKFRfU0laRSA+PSAzMCAmIFRfU0laRSA8IDQwIHwgVF9TSVpFID09IDk5NCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjMtNCBjbSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmZWxzZShUX1NJWkUgPj0gNDAgJiBUX1NJWkUgPCA1MCB8IFRfU0laRSA9PSA5OTUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiNC01IGNtIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmZWxzZShUX1NJWkUgPj0gNTAgJiBUX1NJWkUgPCA2MCB8IFRfU0laRSA9PSA5OTYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjUtNiBjbSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZlbHNlKFRfU0laRSA+PSA2MCAmIFRfU0laRSA8PSA5ODcgfAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRfU0laRSA9PSA5ODAgfCBUX1NJWkUgPT0gOTg5IHwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUX1NJWkUgPT0gOTk3LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI+NiBjbSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZlbHNlKFRfU0laRSA9PSA5ODggfCBUX1NJWkUgPT0gOTk5LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTkFfdW5rIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk1pY3Jvc2NvcGljIGZvY3VzIikpKSkpKSkpKSkgJT4lCiAgICAgICAgbXV0YXRlKFRfU0laRSA9IGZhY3RvcihUX1NJWkUpKSAlPiUKICAgICAgICBtdXRhdGUoVF9TSVpFID0gZmN0X3JlbGV2ZWwoVF9TSVpFLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk5vIFR1bW9yIiwgIk1pY3Jvc2NvcGljIGZvY3VzIiwgIjwgMSBjbSIsICIxLTIgY20iLCAiMi0zIGNtIiwgIjMtNCBjbSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI0LTUgY20iLCAiNS02IGNtIiwgIj42IGNtIiwgIk5BX3VuayIpKSAlPiUKICAgICAgICBtdXRhdGUobWV0c19hdF9keCA9IGNhc2Vfd2hlbihDU19NRVRTX0RYX0xVTkcgPT0gIjEiIH4gIkx1bmciLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENTX01FVFNfRFhfQk9ORSA9PSAiMSIgfiAiQm9uZSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ1NfTUVUU19EWF9CUkFJTiA9PSAiMSIgfiAiQnJhaW4iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENTX01FVFNfRFhfTElWRVIgPT0gIjEiIH4gIkxpdmVyIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUUlVFIH4gIk5vbmUvT3RoZXIvVW5rL05BIikpICU+JQogICAgICAgIG11dGF0ZShNRURJQ0FJRF9FWFBOX0NPREUgPSBmY3RfcmVjb2RlKE1FRElDQUlEX0VYUE5fQ09ERSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTm9uLUV4cGFuc2lvbiBTdGF0ZSIgPSAiMCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkphbiAyMDE0IEV4cGFuc2lvbiBTdGF0ZXMiID0gIjEiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJFYXJseSBFeHBhbnNpb24gU3RhdGVzICgyMDEwLTEzKSIgPSAiMiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkxhdGUgRXhwYW5zaW9uIFN0YXRlcyAoPiBKYW4gMjAxNCkiID0gIjMiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJTdXBwcmVzc2VkIGZvciBBZ2VzIDAgLSAzOSIgPSAiOSIpKSAgJT4lCiAgICAgICAgbXV0YXRlKEVYUE5fR1JPVVAgPSAgY2FzZV93aGVuKE1FRElDQUlEX0VYUE5fQ09ERSAgJWluJSBjKCJKYW4gMjAxNCBFeHBhbnNpb24gU3RhdGVzIikgJiAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBZRUFSX09GX0RJQUdOT1NJUyAlaW4lIGMoIjIwMTQiLCAiMjAxNSIpIH4gIlBvc3QtRXhwYW5zaW9uIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1FRElDQUlEX0VYUE5fQ09ERSAgJWluJSBjKCJKYW4gMjAxNCBFeHBhbnNpb24gU3RhdGVzIikgJiAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBZRUFSX09GX0RJQUdOT1NJUyAlaW4lIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjKCIyMDA0IiwgIjIwMDUiLCAiMjAwNiIsICIyMDA3IiwgIjIwMDgiLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiMjAwOSIsICIyMDEwIiwgIjIwMTEiLCAiMjAxMiIsICIyMDEzIikgfiAiUHJlLUV4cGFuc2lvbiIsCiAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNRURJQ0FJRF9FWFBOX0NPREUgICVpbiUgYygiRWFybHkgRXhwYW5zaW9uIFN0YXRlcyAoMjAxMC0xMykiKSAmIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFlFQVJfT0ZfRElBR05PU0lTICVpbiUgYygiMjAxMCIsICIyMDExIiwgIjIwMTIiLCAiMjAxMyIsICIyMDE0IiwgIjIwMTUiKSB+ICJQb3N0LUV4cGFuc2lvbiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTUVESUNBSURfRVhQTl9DT0RFICAlaW4lIGMoIkVhcmx5IEV4cGFuc2lvbiBTdGF0ZXMgKDIwMTAtMTMpIikgJiAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBZRUFSX09GX0RJQUdOT1NJUyAlaW4lIGMoIjIwMDQiLCAiMjAwNSIsICIyMDA2IiwgIjIwMDciLCAiMjAwOCIsICIyMDA5IikgfiAiUHJlLUV4cGFuc2lvbiIsCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNRURJQ0FJRF9FWFBOX0NPREUgJWluJSBjKCJOb24tRXhwYW5zaW9uIFN0YXRlIikgfiAiUHJlLUV4cGFuc2lvbiIsCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNRURJQ0FJRF9FWFBOX0NPREUgJWluJSBjKCJMYXRlIEV4cGFuc2lvbiBTdGF0ZXMgKD4gSmFuIDIwMTQpIikgfiAiUHJlLUV4cGFuc2lvbiIsCiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1FRElDQUlEX0VYUE5fQ09ERSAlaW4lIGMoIkxhdGUgRXhwYW5zaW9uIFN0YXRlcyAoPiBKYW4gMjAxNCkiKSAmIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWUVBUl9PRl9ESUFHTk9TSVMgJWluJSBjKCIyMDE0IiwgIjIwMTUiKSB+ICJFeGNsdWRlIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1FRElDQUlEX0VYUE5fQ09ERSA9PSAiU3VwcHJlc3NlZCBmb3IgQWdlcyAwIC0gMzkiIH4gIkV4Y2x1ZGUiKSkgJT4lCiAgCiAgbXV0YXRlKHByZV8yMDE0ID0gWUVBUl9PRl9ESUFHTk9TSVMgJWluJSBjKCIyMDA0IiwgIjIwMDUiLCAiMjAwNiIsICIyMDA3IiwgIjIwMDgiLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiMjAwOSIsICIyMDEwIiwgIjIwMTEiLCAiMjAxMiIsICIyMDEzIikpICU+JQogIAogIG11dGF0ZShtZXRzX2F0X2R4X0YgPSBpZmVsc2UobWV0c19hdF9keCA9PSAiTm9uZS9PdGhlci9VbmsvTkEiLCBGQUxTRSwgVFJVRSkpICU+JSAKICAKICBtdXRhdGUoVHhfWU4gPSBpZmVsc2UoU1VSR19SQURfU0VRID09ICJObyBUcmVhdG1lbnQiICYgQ0hFTU9fWU4gPT0gIk5vIiwgRkFMU0UsIAogICAgICAgICAgICAgICAgICAgICAgICBpZmVsc2UoQ0hFTU9fWU4gPT0gIlVrbiIsIE5BLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRSVUUpKSkKCmZhY3RfdmFyc18yIDwtIGMoIkZBQ0lMSVRZX1RZUEVfRiIsICJGQUNJTElUWV9MT0NBVElPTl9GIiwgIkFHRV9GIiwgIlNFWF9GIiwgIlJBQ0VfRiIsCiAgICAgICAgICAgICAgICAgIkhJU1BBTklDIiwgIklOU1VSQU5DRV9GIiwgIklOQ09NRV9GIiwgIkVEVUNBVElPTl9GIiwgIlVfUl9GIiwKICAgICAgICAgICAgICAgICAiQ0RDQ19UT1RBTF9CRVNUIiwgIkNMQVNTX09GX0NBU0VfRiIsICJZRUFSX09GX0RJQUdOT1NJUyIsICJQUklNQVJZX1NJVEUiLCAiSElTVE9MT0dZIiwKICAgICAgICAgICAgICAgICAiQkVIQVZJT1IiLCAiR1JBREVfRiIsICJUTk1fQ0xJTl9UIiwgIlROTV9DTElOX04iLCAiVE5NX0NMSU5fTSIsCiAgICAgICAgICAgICAgICAgIlROTV9DTElOX1NUQUdFX0dST1VQIiwgIlROTV9QQVRIX1QiLCAiVE5NX1BBVEhfTiIsICJUTk1fUEFUSF9NIiwgIlROTV9QQVRIX1NUQUdFX0dST1VQIiwKICAgICAgICAgICAgICAgICAiTUFSR0lOUyIsICJSRUFETV9IT1NQXzMwX0RBWVNfRiIsICJSWF9TVU1NX1JBRElBVElPTl9GIiwgIlBVRl8zMF9EQVlfTU9SVF9DRF9GIiwKICAgICAgICAgICAgICAgICAiUFVGXzkwX0RBWV9NT1JUX0NEX0YiLCAiTFlNUEhfVkFTQ1VMQVJfSU5WQVNJT05fRiIsICJSWF9IT1NQX1NVUkdfQVBQUl8yMDEwX0YiLCAibWV0c19hdF9keCIpCgoKZGF0IDwtIGRhdCAlPiUKICAgICAgICBtdXRhdGVfYXQoZmFjdF92YXJzXzIsIGZ1bnMoZmFjdG9yKC4pKSkKCmBgYAoKCiMgRXh0cmFjdCBEYXRhIG9mIEludGVyZXN0CgpgYGB7cn0KCgojIE5vbi1Ib2Rna2luIEx5bXBob21hIFNpdGVzCnNpdGVfY29kZSA8LSBjKCJDMDk4IiwgIkMwOTkiLCAiQzExMSIsICJDMTQyIiwgIkMzNzkiLCAiQzQyMiIsIkM3NzAiLAoiQzc3MSIsIkM3NzIiLCJDNzczIiwiQzc3NCIsICJDNzc1IiwgIkM3NzgiLCJDNzc5IikKCiNteWNvc2lzIGZ1bmdvaWRlcywgU2V6YXJ5IHN5bmRyb21lLCBzdWJjdXRhbmVvdXMgcGFubmljdWxpdGlzLWxpa2UgVC1jZWxsIGx5bXBob21hLAojY3V0YW5lb3VzIFQtY2VsbCBseW1waG9tYSwgTk9TLCBwcmltYXJ5IGN1dGFuZW91cyBDRDMwK1QtY2VsbCBseW1waG9tYSwgCiNOSy9ULWNlbGwgbHltcGhvbWEsIHByaW1hcnkgY3V0YW5lb3VzIGdhbW1hLWRlbHRhIFQtY2VsbCBseW1waG9tYSwgCiNhbmQgYmxhc3RpYyBOSyBjZWxsIGx5bXBob21hLCByZXNwZWN0aXZlbHkKaGlzdG9fY29kZSA8LSBjKCI5NzAwIiwgIjk3MDEiLCAiOTcwOCIsICI5NzA5IiwgIjk3MTgiLCAiOTcxOSIsICI5NzI2IiwgIjk3MjciKQoKYmVoYXZpb3JfY29kZSA8LSBjKCIzIikKCmRhdGEgPC0gZGF0ICU+JQogICAgICAgIGZpbHRlcihCRUhBVklPUiAlaW4lIGJlaGF2aW9yX2NvZGUpICU+JQogICAgICAgIGZpbHRlcihQUklNQVJZX1NJVEUgJWluJSBzaXRlX2NvZGUpICU+JQogICAgICAgIGZpbHRlcihISVNUT0xPR1kgJWluJSBoaXN0b19jb2RlKSAlPiUKICAgICAgICAjZmlsdGVyKEFHRSA+PSAxOCkgJT4lCiAgICAgICAgZmlsdGVyKGlzLm5hKFBVRl9WSVRBTF9TVEFUVVMpID09IEZBTFNFKSAlPiUKICAgICAgICBmaWx0ZXIoaXMubmEoRFhfTEFTVENPTlRBQ1RfREVBVEhfTU9OVEhTKSA9PSBGQUxTRSkgICU+JQogICAgICAgIGZpbHRlcihTRVFVRU5DRV9OVU1CRVIgPT0gIjAwIikgCgpmaWxlX3BhdGggPC0gYygiL1VzZXJzL2JlYXN0YXRsaWZlL0dvb2dsZSBEcml2ZS9QZW5uL1Jlc2VhcmNoL0JhcmJpZXJpL05DREIiKQpzYXZlKGRhdGEsCiAgICAgIGZpbGUgPSBwYXN0ZTAoZmlsZV9wYXRoLCAiL01GX2RhdGEuUmRhIikpCmBgYAoKYGBge3IgbG9hZERhdGF9CiNsb2FkKCJNRl9kYXRhLlJkYSIpCmBgYAoKCgoKRGF0YSBpbmNsdWRpbmcgc2tpbiB0dW1vcnMgd2FzIG9idGFpbmVkIGZyb20gdGhlIE5DQkQgb24gT2N0b2JlciA3LCAyMDE5LiBDYXNlcyB0aGF0IHdlcmUgaW5jbHVkZWQgaW4gdGhpcyBhbmFseXNpcyB3ZXJlIHRob3NlIHdpdGg6CgoxLiBTaXRlIGNvZGVzOiBgciBzaXRlX2NvZGVgCjIuIEhpc3RvbG9neSBjb2RlczogYHIgaGlzdG9fY29kZWAKMy4gQmVoYXZpb3IgY29kZXM6IGByIGJlaGF2aW9yX2NvZGVgCgoKUGF0aWVudHMgd2VyZSBleGNsdWRlZCBpZiB0aGV5IGRpZG4ndCBoYXZlIHZhbHVlcyBmb3IgZWl0aGVyIGZvbGxvdyB1cCBvciB2aXRhbCBzdGF0dXMuCgpQYXRpZW50cyB3ZXJlIGV4Y2x1ZGVkIGlmIHRoZXkgaGFkIHN1cmdlcnkgdG8gYSBkaXN0YW50IHNpdGUgdXNpbmcgYFJYX1NVTU1fU1VSR19PVEhfUkVHRElTYC4gVGhpcyB3YXMgZG9uZSB0byBhdm9pZCBjb25mb3VuZGluZyBvZiBkaWZmZXJlbnQgc3VyZ2ljYWwgcHJvY2VkdXJlcy4gV2UgYXJlIG9ubHkgaW50ZXJlc3RlZCBpbiBzdXJnZXJ5IGF0IHRoZSBwcmltYXJ5IHNpdGUuIFRoZXNlIGRpc3RhbnQgc2l0ZSBzdXJnZXJpZXMgd2VyZSBiZWluZyBjb3VudGVkIGluIHRoZSBzdXJnZXJ5L3JhZGlhdGlvbiBzZXF1ZW5jZSBhbmQgdGh1cyB0byBzaW1wbGlmeSBhbmFseXNpcyB0aGV5IHdlcmUgcmVtb3ZlZC4gCgpgYGB7cn0KCmRhdGEgJT4lCiAgICAgICAgQ3JlYXRlVGFibGVPbmUoZGF0YSA9IC4sCiAgICAgICAgICAgICAgICAgICAgIHZhcnMgPSBjKCJSWF9TVU1NX1NVUkdfT1RIX1JFR0RJUyIpLAogICAgICAgICAgICAgICAgICAgICBpbmNsdWRlTkEgPSBUUlVFKSAlPiUKICAgICAgICBwcmludCguLAogICAgICAgICAgICAgIHNob3dBbGxMZXZlbHMgPSBUUlVFKQoKZGF0YSA8LSBkYXRhICU+JQogICAgICAgIGZpbHRlcihSWF9TVU1NX1NVUkdfT1RIX1JFR0RJUyA9PSAiMCIpIApgYGAKCgpSYWNlIHdhcyBncm91cGVkIGFzIHdoaXRlLCBibGFjaywgYXNpYW4sIG90aGVyL3Vua25vd24KU3RhZ2Ugd2FzIGdyb3VwZWQgaW50byAwLCBJLCBJSSwgSUlJLCBJViwgTkFfVW5rbm93biwgc3RhZ2UgMCB3YXMgcmVtb3ZlZApXaGV0aGVyIHN1cmdlcnkgd2FzIHBlcmZvcm1lZCB3YXMgYmFzZWQgb24gdGhlIGBSRUFTT05fRk9SX05PX1NVUkdFUllgIHZhcmlhYmxlLiBUaGUgYFNVUkdFUllfWU5gIHZhcmlhYmxlIHdhcyBjbGFzc2lmaWVkIGFzICdZZXMnLCAnTm8nLCBvciAnVW5rbm93bicuCgoKV2hldGhlciByYWRpYXRpb24gd2FzIHBlcmZvcm1lZCB3YXMgYmFzZWQgb24gdGhlIGBSRUFTT05fRk9SX05PX1JBRElBVElPTmAgdmFyaWFibGUuIFRoZSBgUkFESUFUSU9OX1lOYCB2YXJpYWJsZSB3YXMgY2xhc3NpZmllZCBhcyAnWWVzJywgJ05vJywgb3IgJ1Vua25vd24nLgoKCgojVGFibGUgb2YgdmFyaWFibGVzIGZvciBhbGwgY2FzZXM6CgpgYGB7cn0KCnBfdGFibGUoZGF0YSwKICAgICAgICB2YXJzID0gYygiRkFDSUxJVFlfVFlQRV9GIiwgIkZBQ0lMSVRZX0xPQ0FUSU9OX0YiLCAiRkFDSUxJVFlfR0VPR1JBUEhZIiwgICJBR0UiLCAiQUdFX0YiLCAiQUdFXzQwIiwKICAgICAgICAgICAgICAgICAiU0VYX0YiLCAiUkFDRV9GIiwgIkhJU1BBTklDIiwgIklOU1VSQU5DRV9GIiwgCiAgICAgICAgICAgICAgICAgIklOQ09NRV9GIiwgIkVEVUNBVElPTl9GIiwgIlVfUl9GIiwgIkNST1dGTFkiLCAiQ0RDQ19UT1RBTF9CRVNUIiwKICAgICAgICAgICAgICAgICAiU0lURV9URVhUIiwgIkhJU1RPTE9HWV9GX0xJTSIsICJISVNUT0xPR1lfRiIsICJCRUhBVklPUiIsICJHUkFERV9GIiwKICAgICAgICAgICAgICAgICAiRFhfU1RBR0lOR19QUk9DX0RBWVMiLCAiVE5NX0NMSU5fVCIsICJUTk1fQ0xJTl9OIiwgIlROTV9DTElOX00iLAogICAgICAgICAgICAgICAgICJUTk1fQ0xJTl9TVEFHRV9HUk9VUCIsICJUTk1fUEFUSF9UIiwgIlROTV9QQVRIX04iLCAiVE5NX1BBVEhfTSIsCiAgICAgICAgICAgICAgICAgIlROTV9QQVRIX1NUQUdFX0dST1VQIiwgIkRYX1JYX1NUQVJURURfREFZUyIsICJEWF9TVVJHX1NUQVJURURfREFZUyIsCiAgICAgICAgICAgICAgICAgIkRYX0RFRlNVUkdfU1RBUlRFRF9EQVlTIiwgIk1BUkdJTlMiLCAiTUFSR0lOU19ZTiIsICJTVVJHX0RJU0NIQVJHRV9EQVlTIiwKICAgICAgICAgICAgICAgICAiUkVBRE1fSE9TUF8zMF9EQVlTX0YiLCAiUlhfU1VNTV9SQURJQVRJT05fRiIsICJQVUZfMzBfREFZX01PUlRfQ0RfRiIsCiAgICAgICAgICAgICAgICAgIlBVRl85MF9EQVlfTU9SVF9DRF9GIiwgIkRYX0xBU1RDT05UQUNUX0RFQVRIX01PTlRIUyIsIAogICAgICAgICAgICAgICAgICJMWU1QSF9WQVNDVUxBUl9JTlZBU0lPTl9GIiwgIlJYX0hPU1BfU1VSR19BUFBSXzIwMTBfRiIsICJTVVJHX1JBRF9TRVEiLAogICAgICAgICAgICAgICAgICJTVVJHX1JBRF9TRVFfQyIsICJTVVJHRVJZX1lOIiwgIlJBRElBVElPTl9ZTiIsICJDSEVNT19ZTiIsICJtZXRzX2F0X2R4IiwKICAgICAgICAgICAgICAgICAiTUVESUNBSURfRVhQTl9DT0RFIiwgIkVYUE5fR1JPVVAiLCAiU0lURV9URVhUIikpCgoKCnBfdGFibGUobm9fRXhjbHVkZXMsCiAgICAgICAgdmFycyA9IGMoIkZBQ0lMSVRZX1RZUEVfRiIsICJGQUNJTElUWV9MT0NBVElPTl9GIiwgIkZBQ0lMSVRZX0dFT0dSQVBIWSIsICAiQUdFIiwgIkFHRV9GIiwgIkFHRV80MCIsCiAgICAgICAgICAgICAgICAgIlNFWF9GIiwgIlJBQ0VfRiIsICJISVNQQU5JQyIsICJJTlNVUkFOQ0VfRiIsIAogICAgICAgICAgICAgICAgICJJTkNPTUVfRiIsICJFRFVDQVRJT05fRiIsICJVX1JfRiIsICJDUk9XRkxZIiwgIkNEQ0NfVE9UQUxfQkVTVCIsCiAgICAgICAgICAgICAgICAgIlNJVEVfVEVYVCIsICJISVNUT0xPR1lfRl9MSU0iLCAiSElTVE9MT0dZX0YiLCAiQkVIQVZJT1IiLCAiR1JBREVfRiIsCiAgICAgICAgICAgICAgICAgIkRYX1NUQUdJTkdfUFJPQ19EQVlTIiwgIlROTV9DTElOX1QiLCAiVE5NX0NMSU5fTiIsICJUTk1fQ0xJTl9NIiwKICAgICAgICAgICAgICAgICAiVE5NX0NMSU5fU1RBR0VfR1JPVVAiLCAiVE5NX1BBVEhfVCIsICJUTk1fUEFUSF9OIiwgIlROTV9QQVRIX00iLAogICAgICAgICAgICAgICAgICJUTk1fUEFUSF9TVEFHRV9HUk9VUCIsICJEWF9SWF9TVEFSVEVEX0RBWVMiLCAiRFhfU1VSR19TVEFSVEVEX0RBWVMiLAogICAgICAgICAgICAgICAgICJEWF9ERUZTVVJHX1NUQVJURURfREFZUyIsICJNQVJHSU5TIiwgIk1BUkdJTlNfWU4iLCAiU1VSR19ESVNDSEFSR0VfREFZUyIsCiAgICAgICAgICAgICAgICAgIlJFQURNX0hPU1BfMzBfREFZU19GIiwgIlJYX1NVTU1fUkFESUFUSU9OX0YiLCAiUFVGXzMwX0RBWV9NT1JUX0NEX0YiLAogICAgICAgICAgICAgICAgICJQVUZfOTBfREFZX01PUlRfQ0RfRiIsICJEWF9MQVNUQ09OVEFDVF9ERUFUSF9NT05USFMiLCAKICAgICAgICAgICAgICAgICAiTFlNUEhfVkFTQ1VMQVJfSU5WQVNJT05fRiIsICJSWF9IT1NQX1NVUkdfQVBQUl8yMDEwX0YiLCAiU1VSR19SQURfU0VRIiwKICAgICAgICAgICAgICAgICAiU1VSR19SQURfU0VRX0MiLCAiVF9TSVpFIiwgIlNVUkdFUllfWU4iLCAiUkFESUFUSU9OX1lOIiwgIkNIRU1PX1lOIiwgIm1ldHNfYXRfZHgiLAogICAgICAgICAgICAgICAgICJNRURJQ0FJRF9FWFBOX0NPREUiLCJTSVRFX1RFWFQiKSwgCiAgICAgICAgc3RyYXRhID0gIkVYUE5fR1JPVVAiKQoKCnBfdGFibGUoZGF0YSwKICAgICAgICB2YXJzID0gYygiWUVBUl9PRl9ESUFHTk9TSVMiKSwKICAgICAgICBzdHJhdGEgPSBjKCJNRURJQ0FJRF9FWFBOX0NPREUiKSkKYGBgCgoKYGBge3J9CgpwcmVFeHBNZWRpY2FyZSAgPC0gbnJvdyhkYXRhICU+JSBmaWx0ZXIoRVhQTl9HUk9VUCA9PSAiUHJlLUV4cGFuc2lvbiIgJiBJTlNVUkFOQ0VfRiA9PSAiTWVkaWNhcmUiKSkKcG9zdEV4cE1lZGljYXJlIDwtIG5yb3coZGF0YSAlPiUgZmlsdGVyKEVYUE5fR1JPVVAgPT0gIlBvc3QtRXhwYW5zaW9uIiAmIElOU1VSQU5DRV9GID09ICJNZWRpY2FyZSIpKQoKIyBwID0gMC4yNSB3aGVuIGNvbXBhcmluZyBjaGFuZ2UgaW4gcHJvcG9ydGlvbiBvZiBwYXRpZW50cyB3aXRoIE1lZGljYXJlIGJlZm9yZSBhbmQgYWZ0ZXIgQUNBIGV4cGFuc2lvbgpwcm9wLnRlc3QoYyhwcmVFeHBNZWRpY2FyZSwgcG9zdEV4cE1lZGljYXJlKSwgCiAgICAgICAgICBjKG5yb3coZGF0YSAlPiUgZmlsdGVyKEVYUE5fR1JPVVAgPT0gIlByZS1FeHBhbnNpb24iKSksIG5yb3coZGF0YSAlPiUgZmlsdGVyKEVYUE5fR1JPVVAgPT0gIlBvc3QtRXhwYW5zaW9uIikpKSkKCnByZUV4cE5vSW5zdXJhbmNlIDwtIG5yb3coZGF0YSAlPiUgZmlsdGVyKEVYUE5fR1JPVVAgPT0gIlByZS1FeHBhbnNpb24iKSAlPiUgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXIoSU5TVVJBTkNFX0YgPT0gIk5vbmUiKSkKcG9zdEV4cE5vSW5zdXJhbmNlIDwtIG5yb3coZGF0YSAlPiUgZmlsdGVyKEVYUE5fR1JPVVAgPT0gIlBvc3QtRXhwYW5zaW9uIikgJT4lIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbHRlcihJTlNVUkFOQ0VfRiA9PSAiTm9uZSIpKQoKIyBTaWduaWZpY2FudCBkZWNyZWFzZSBpbiB0aGUgb3ZlcmFsbCBwcm9wb3J0aW9uIG9mIHBhdGllbnRzIHdpdGhvdXQgaW5zdXJhbmNlIGFmdGVyIEFDQSBleHBhbnNpb24gCnByb3AudGVzdChjKHByZUV4cE5vSW5zdXJhbmNlLCBwb3N0RXhwTm9JbnN1cmFuY2UpLCAKICAgICAgICAgIGMobnJvdyhkYXRhICU+JSBmaWx0ZXIoRVhQTl9HUk9VUCA9PSAiUHJlLUV4cGFuc2lvbiIpKSwgbnJvdyhkYXRhICU+JSBmaWx0ZXIoRVhQTl9HUk9VUCA9PSAiUG9zdC1FeHBhbnNpb24iKSkpKQoKcF90YWJsZShub19FeGNsdWRlcywgc3RyYXRhID0gIkVYUE5fR1JPVVAiLCB2YXJzID0gIkRYX1JYX1NUQVJURURfREFZUyIpCgpkYXRhIDwtIGRhdGEgJT4lIG11dGF0ZShJbnN1cmVkID0gSU5TVVJBTkNFX0YgIT0gIlVua25vd24iKQoKYGBgCgoKCgojS2FwbGFuIE1laWVyIEFuYWx5c2lzCgoKIyNBbGwKCmBgYHtyfQp1bmlfdmFyKHRlc3RfdmFyID0gIkFsbCIsIGRhdGFfaW1wID0gZGF0YSkKYGBgCgojI0ZhY2lsaXR5IFR5cGUKYGBge3J9CnVuaV92YXIodGVzdF92YXIgPSAiRkFDSUxJVFlfVFlQRV9GIiwgZGF0YV9pbXAgPSBkYXRhKQpgYGAKCiMjRmFjaWxpdHkgTG9jYXRpb24KCmBgYHtyfQp1bmlfdmFyKHRlc3RfdmFyID0gIkZBQ0lMSVRZX0xPQ0FUSU9OX0YiLCBkYXRhX2ltcCA9IGRhdGEpCmBgYAoKIyNGYWNpbGl0eSBHZW9ncmFwaHkKCmBgYHtyfQp1bmlfdmFyKHRlc3RfdmFyID0gIkZBQ0lMSVRZX0dFT0dSQVBIWSIsIGRhdGFfaW1wID0gZGF0YSkKYGBgCgojI0FnZSBHcm91cAoKYGBge3J9CnVuaV92YXIodGVzdF92YXIgPSAiQUdFX0YiLCBkYXRhX2ltcCA9IGRhdGEpCmBgYAoKIyNBZ2UgR3JvdXAKYGBge3J9CnVuaV92YXIodGVzdF92YXIgPSAiQUdFXzQwIiwgZGF0YV9pbXAgPSBkYXRhKQpgYGAKCiMjR2VuZGVyCgpgYGB7cn0KdW5pX3Zhcih0ZXN0X3ZhciA9ICJTRVhfRiIsIGRhdGFfaW1wID0gZGF0YSkKYGBgCgojI1JBQ0VfRgoKYGBge3J9CnVuaV92YXIodGVzdF92YXIgPSAiUkFDRV9GIiwgZGF0YV9pbXAgPSBkYXRhKQpgYGAKCiMjSGlzcGFuaWMKCmBgYHtyfQp1bmlfdmFyKHRlc3RfdmFyID0gIkhJU1BBTklDIiwgZGF0YV9pbXAgPSBkYXRhKQpgYGAKCiMjSW5zdXJhbmNlIFN0YXR1cwoKYGBge3J9CnVuaV92YXIodGVzdF92YXIgPSAiSU5TVVJBTkNFX0YiLCBkYXRhX2ltcCA9IGRhdGEpCmBgYAoKIyNPdmVyYWxsIFN1cnZpdmFsIHByZS9wb3N0LUFDQSBleHBhbnNpb24KCmBgYHtyfQp1bmlfdmFyKHRlc3RfdmFyID0gIkVYUE5fR1JPVVAiLCBkYXRhX2ltcCA9IG5vX0V4Y2x1ZGVzKQpgYGAKCgo8IS0tICMjSW5jb21lIC0tPgoKPCEtLSBgYGB7cn0gLS0+CjwhLS0gY2xhc3MoZGF0YSRJTkNPTUVfRikgLS0+CjwhLS0gdW5pX3Zhcih0ZXN0X3ZhciA9ICJJTkNPTUVfRiIsIGRhdGFfaW1wID0gZGF0YSkgLS0+CjwhLS0gYGBgIC0tPgoKIyNFZHVjYXRpb24KCmBgYHtyfQp1bmlfdmFyKHRlc3RfdmFyID0gIkVEVUNBVElPTl9GIiwgZGF0YV9pbXAgPSBkYXRhKQpgYGAKCiMjVXJiYW4vUnVyYWwKCmBgYHtyfQp1bmlfdmFyKHRlc3RfdmFyID0gIlVfUl9GIiwgZGF0YV9pbXAgPSBkYXRhKQpgYGAKCiMjQ2xhc3MgKHRyZWF0bWVudCBhdCBwZXJmb3JtaW5nIGZhY2lsaXR5KQoKYGBge3J9CnVuaV92YXIodGVzdF92YXIgPSAiQ0xBU1NfT0ZfQ0FTRV9GIiwgZGF0YV9pbXAgPSBkYXRhKQpgYGAKCiMjWWVhcgoKYGBge3J9CnVuaV92YXIodGVzdF92YXIgPSAiWUVBUl9PRl9ESUFHTk9TSVMiLCBkYXRhX2ltcCA9IGRhdGEpCmBgYAoKIyNQcmltYXJ5IFNpdGUKCmBgYHtyfQp1bmlfdmFyKHRlc3RfdmFyID0gIlNJVEVfVEVYVCIsIGRhdGFfaW1wID0gZGF0YSkKYGBgCgoKIyNIaXN0b2xvZ3kKCmBgYHtyfQojdW5pX3Zhcih0ZXN0X3ZhciA9ICJISVNUT0xPR1lfRl9MSU0iLCBkYXRhX2ltcCA9IGRhdGEpCmBgYAoKPCEtLSAjI0JlaGF2aW9yIC0tPgoKPCEtLSBgYGB7cn0gLS0+CjwhLS0gdW5pX3Zhcih0ZXN0X3ZhciA9ICJCRUhBVklPUiIsIGRhdGFfaW1wID0gZGF0YSkgLS0+CjwhLS0gYGBgIC0tPgoKIyNHcmFkZQoKYGBge3J9CiN1bmlfdmFyKHRlc3RfdmFyID0gIkdSQURFX0YiLCBkYXRhX2ltcCA9IGRhdGEpCmBgYAoKIyNDbGluaWNhbCBUIFN0YWdlCgpgYGB7cn0KdW5pX3Zhcih0ZXN0X3ZhciA9ICJUTk1fQ0xJTl9UIiwgZGF0YV9pbXAgPSBkYXRhKQpgYGAKCiMjQ2xpbmljYWwgTiBTdGFnZQoKYGBge3J9CnVuaV92YXIodGVzdF92YXIgPSAiVE5NX0NMSU5fTiIsIGRhdGFfaW1wID0gZGF0YSkKYGBgCgo8IS0tICMjQ2xpbmljYWwgTSBTdGFnZSAtLT4KCjwhLS0gYGBge3J9IC0tPgo8IS0tIHVuaV92YXIodGVzdF92YXIgPSAiVE5NX0NMSU5fTSIsIGRhdGFfaW1wID0gZGF0YSkgLS0+CjwhLS0gYGBgIC0tPgoKIyNDbGluaWNhbCBTdGFnZSBHcm91cAoKYGBge3J9CnVuaV92YXIodGVzdF92YXIgPSAiVE5NX0NMSU5fU1RBR0VfR1JPVVAiLCBkYXRhX2ltcCA9IGRhdGEpCmBgYAoKIyNQYXRob2xvZ2ljIFQgU3RhZ2UKCmBgYHtyfQp1bmlfdmFyKHRlc3RfdmFyID0gIlROTV9QQVRIX1QiLCBkYXRhX2ltcCA9IGRhdGEpCmBgYAoKIyNQYXRob2xvZ2ljIE4gU3RhZ2UKCmBgYHtyfQp1bmlfdmFyKHRlc3RfdmFyID0gIlROTV9QQVRIX04iLCBkYXRhX2ltcCA9IGRhdGEpCmBgYAoKIyNQYXRob2xvZ2ljIE0gU3RhZ2UKCmBgYHtyfQp1bmlfdmFyKHRlc3RfdmFyID0gIlROTV9QQVRIX00iLCBkYXRhX2ltcCA9IGRhdGEpCmBgYAoKIyNQYXRob2xvZ2ljIFN0YWdlIEdyb3VwCgpgYGB7cn0KdW5pX3Zhcih0ZXN0X3ZhciA9ICJUTk1fUEFUSF9TVEFHRV9HUk9VUCIsIGRhdGFfaW1wID0gZGF0YSkKYGBgCgojI01hcmdpbnMKYGBge3J9CnVuaV92YXIodGVzdF92YXIgPSAiTUFSR0lOUyIsIGRhdGFfaW1wID0gZGF0YSkKYGBgCgojI01hcmdpbnMgWWVzL05vCmBgYHtyfQojdW5pX3Zhcih0ZXN0X3ZhciA9ICJNQVJHSU5TX1lOIiwgZGF0YV9pbXAgPSBkYXRhKQpgYGAKCiMjMzAgRGF5IFJlYWRtaXNzaW9uCgpgYGB7cn0KdW5pX3Zhcih0ZXN0X3ZhciA9ICJSRUFETV9IT1NQXzMwX0RBWVNfRiIsIGRhdGFfaW1wID0gZGF0YSkKYGBgCgojI1JhZGlhdGlvbiBUeXBlCgpgYGB7cn0KdW5pX3Zhcih0ZXN0X3ZhciA9ICJSWF9TVU1NX1JBRElBVElPTl9GIiwgZGF0YV9pbXAgPSBkYXRhKQpgYGAKCgojI0x5bXBob3Zhc2N1bGFyIEludmFzaW9uCgpgYGB7cn0KI3VuaV92YXIodGVzdF92YXIgPSAiTFlNUEhfVkFTQ1VMQVJfSU5WQVNJT05fRiIsIGRhdGFfaW1wID0gZGF0YSkKYGBgCgojI0VuZG9zY29waWMvUm9ib3RpYwoKYGBge3J9CnVuaV92YXIodGVzdF92YXIgPSAiUlhfSE9TUF9TVVJHX0FQUFJfMjAxMF9GIiwgZGF0YV9pbXAgPSBkYXRhKQpgYGAKCiMjU3VyZ2VyeSBSYWRpYXRpb24gU2VxdWVuY2UgCgpgYGB7cn0KdW5pX3Zhcih0ZXN0X3ZhciA9ICJTVVJHX1JBRF9TRVEiLCBkYXRhX2ltcCA9IGRhdGEpCmBgYAoKIyNTdXJnZXJ5IFllcy9ObwoKYGBge3J9CnVuaV92YXIodGVzdF92YXIgPSAiU1VSR0VSWV9ZTiIsIGRhdGFfaW1wID0gZGF0YSkKYGBgCgojI1JhZGlhdGlvbiBZZXMvTm8KCmBgYHtyfQp1bmlfdmFyKHRlc3RfdmFyID0gIlJBRElBVElPTl9ZTiIsIGRhdGFfaW1wID0gZGF0YSkKYGBgCgojI0NoZW1vIFllcy9ObwoKYGBge3J9CnVuaV92YXIodGVzdF92YXIgPSAiQ0hFTU9fWU4iLCBkYXRhX2ltcCA9IGRhdGEpCmBgYAoKCiMjVHJlYXRtZW50IFllcy9ObwpgYGB7cn0KdW5pX3Zhcih0ZXN0X3ZhciA9ICJUeF9ZTiIsIGRhdGFfaW1wID0gZGF0YSkKYGBgCgojI01ldGFzdGFzZXMgYXQgRHgKYGBge3J9CnVuaV92YXIodGVzdF92YXIgPSAibWV0c19hdF9keF9GIiwgZGF0YV9pbXAgPSBkYXRhKQpgYGAKCjwhLS0gIyNUdW1vciBTaXplIC0tPgoKPCEtLSBgYGB7cn0gLS0+CjwhLS0gdW5pX3Zhcih0ZXN0X3ZhciA9ICJUX1NJWkUiLCBkYXRhX2ltcCA9IGRhdGEpIC0tPgo8IS0tIGBgYCAtLT4KCiNUdW1vciBzcGVjaWZpYyBWYXJpYWJsZXMKCgojIyNOb2RlIFNpemUKCgojQ294IFByb3BvcnRpb25hbCBIYXphcmQgUmF0aW8KCiMjTW9kZWwgIzEKCiMjI0Z1bGwgYW5hbHlzaXMKCmBgYHtyfQptb2RlbF9vbmUgPC0gY294cGgoU3VydihEWF9MQVNUQ09OVEFDVF9ERUFUSF9NT05USFMsIFBVRl9WSVRBTF9TVEFUVVMgPT0gMCkKICAgICAgICAgICAgICAgICAgICAgfiBTVVJHX1JBRF9TRVEgKyBJTlNVUkFOQ0VfRiArIEFHRSArIFNFWF9GICsgUkFDRV9GICsgSU5DT01FX0YgKyBVX1JfRiArCiAgICAgICAgICAgICAgICAgICAgICBGQUNJTElUWV9UWVBFX0YgKyBGQUNJTElUWV9MT0NBVElPTl9GICsgRURVQ0FUSU9OX0YsCiAgICAgICAgICAgICAgICAgICAgIGRhdGEgPSBkYXRhKQptb2RlbF9vbmUgJT4lIHN1bW1hcnkoKQoKCmBgYAoKIyMjU3VtbWFyeSBvZiBNb2RlbAoKYGBge3J9Cm1vZGVsX29uZSAlPiUKICAgICAgICB0aWR5KC4sIGV4cG9uZW50aWF0ZSA9IFRSVUUpICU+JQogICAgICAgIHNlbGVjdCh0ZXJtLCBlc3RpbWF0ZSwgY29uZi5sb3csIGNvbmYuaGlnaCwgcC52YWx1ZSkgJT4lCiAgICAgICAgcmVuYW1lKFZhcmlhYmxlID0gdGVybSwKICAgICAgICAgICAgICAgSGF6YXJkX1JhdGlvID0gZXN0aW1hdGUpICU+JQogICAgICAgIHRibF9kZiAlPiUKICAgICAgICBwcmludChuID0gbnJvdyguKSkKCmBgYAoKIyBQcmVkaWN0aW9uIExvZ2lzdGljIFJlZ3Jlc3Npb24gTW9kZWxzCgojIyBTdXJnZXJ5CmBgYHtyfQoKbm9fVWtucyA8LSBkYXRhICU+JQogIGZpbHRlcihTVVJHRVJZX1lOICE9ICJVa24iKSAlPiUgCiAgZHJvcGxldmVscygpICU+JSAKICBtdXRhdGUoU1VSR0VSWV9ZTiA9IGFzLmxvZ2ljYWwoU1VSR0VSWV9ZTikpCgpmaXRfc3VyZyA8LSBnbG0oU1VSR19URiB+IEFHRV9GICsgU0VYX0YgKyBSQUNFX0YgKyBJTkNPTUVfRiArIFVfUl9GICsKICAgICAgICAgICAgICAgICAgICAgIEZBQ0lMSVRZX1RZUEVfRiArIEZBQ0lMSVRZX0xPQ0FUSU9OX0YgKyBFRFVDQVRJT05fRiArIEVYUE5fR1JPVVAsCiAgIGRhdGEgPSBub19Va25zKQoKc3VtbWFyeShmaXRfc3VyZykKCmV4cChjYmluZCgiT2RkcyByYXRpbyIgPSBjb2VmKGZpdF9zdXJnKSwgY29uZmludC5kZWZhdWx0KGZpdF9zdXJnLCBsZXZlbCA9IDAuOTUpKSkKYGBgCgojIyBNZXRhc3Rhc2lzIGF0IFRpbWUgb2YgRGlhZ25vc2lzCmBgYHtyfQojIGxpbWl0IHRvIHRob3NlIGNhc2VzIHdoZXJlIGRhdGEgYWJvdXQgZXhwYW5zaW9uIHN0YXR1cyBpcyBhdmFpbGFibGUgKD4gQWdlIDM5LCBub24tYW1iaWd1b3VzIHN0YXR1cyBzdGF0ZXMpCgpmaXRfbWV0cyA8LSBnbG0obWV0c19hdF9keF9GIH4gQUdFX0YgKyBTRVhfRiArIFJBQ0VfRiArIElOQ09NRV9GICsgVV9SX0YgKwogICAgICAgICAgICAgICAgICAgICAgRkFDSUxJVFlfVFlQRV9GICsgRkFDSUxJVFlfTE9DQVRJT05fRiArIEVEVUNBVElPTl9GICsgRVhQTl9HUk9VUCwKICAgZGF0YSA9IG5vX0V4Y2x1ZGVzKQoKc3VtbWFyeShmaXRfbWV0cykKCmV4cChjYmluZCgiT2RkcyByYXRpbyIgPSBjb2VmKGZpdF9tZXRzKSwgY29uZmludC5kZWZhdWx0KGZpdF9zdXJnLCBsZXZlbCA9IDAuOTUpKSkKYGBg